Force feedback device including non-rigid coupling

ABSTRACT

A method and apparatus for providing force sensations in virtual environments includes a human/computer interface device and method used in conjunction with a host computer and which can provide feel sensations to a user of the device. A user manipulatable object physically contacted by a user, such as a joystick, stylus, pool cue, or other object, is movable in multiple degrees of freedom using a gimbal mechanism. A local microprocessor, separate from the host computer, enables communication with the host computer and receives commands from the host, decodes the commands, outputs actuator signals in accordance with commands, receives sensor signals, and reports data to the host in response to commands. Actuators generate feel sensations by providing a force on the user object in response to actuator signals from the local microprocessor, and sensors detect the motion of the user object and reports sensor signals to the local microprocessor. Memory is included locally to the local microprocessor for storing program instructions and routines enabling feel sensations and host-microprocessor communication. The feel sensation generated on the user is, in one embodiment, a damping sensation simulating a feel of motion through a fluid. In another embodiment, the feel sensation is a wall sensation simulating the feel of impacting a surface or obstruction.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 09/532,288,filed Mar. 22, 2000 which issued as U.S. Pat. No. 6,437,771; which is acontinuation of application Ser. No. 08/784,803 filed Jan. 16, 1997 andwhich is issued as U.S. Pat. No. 6,057,828; which is acontinuation-in-part of application Ser. No. 08/374,288, filed Jan. 18,1995 and which issued as U.S. Pat. No. 5,731,804; and acontinuation-in-part of application Ser. No. 08/400,233, filed Mar. 3,1995 and which issued as U.S. Pat. No. 5,767,839; and acontinuation-in-part of application Ser. No. 08/583,032, filed Feb. 16,1996, and which issued as U.S. Pat. No. 5,701,140; which was theNational Stage of International Application No. PCT/US94/07851, filedJul. 12, 1994; which is a continuation of application Ser. No.08/092,974, filed Jul. 16, 1993, abandoned.

BACKGROUND OF THE INVENTION

The present invention relates generally to interface devices betweenhumans and computers, and more particularly to computer input devicesthat provide force feedback to the user.

Computer systems can be used for a variety of applications, includingsimulations and games which are very popular with consumers. A computersystem typically displays a visual environment to a user on a displayscreen or other visual output device. Users can interact with thedisplayed environment to perform functions on the computer, such asplaying a game, experience a simulation or virtual reality environment,use a computer aided design system, operate a graphical user interface(GUI), perform file manipulation, or otherwise influence events orimages depicted on the screen. Such user interaction can be implementedthrough the use of a human-computer interface device, such as ajoystick, mouse, trackball, stylus, tablet, or the like, that isconnected to the computer system controlling the displayed environment.Typically, the computer updates the environment in response to theuser's manipulation of a user-manipulatable physical object such as ajoystick handle or mouse, and provides visual feedback to the userutilizing the display screen and, typically, audio speakers. Thecomputer senses the user's manipulation of the object through sensorsprovided on the interface device.

One common use for computer and virtual reality systems is forsimulations and games. For example, a user can operate a simulatedfighter aircraft or spacecraft by manipulating controls such as ajoystick and other buttons and view the results of controlling theaircraft on display device portraying a virtual reality simulation orgame of the aircraft in flight. In other applications, a user canmanipulate objects and tools in the real world, such as a stylus, andview the results of the manipulation in a virtual reality world with a“virtual stylus” viewed on a screen, in 3-D goggles, etc. In yet otherapplications, activities such as medical procedures, vehicle training,etc., virtual reality computer systems and simulations are used fortraining purposes to allow a user to learn from and experience arealistic “virtual” environment.

In addition to sensing and tracking a user's manual activity and feedingsuch information to the controlling computer to provide a 3D visualrepresentation to the user, a human interface mechanism should alsoprovide tactile or haptic feedback to the user, more generally known as“force feedback.” The need for the user to obtain realistic forceinformation and experience force sensation is extensive in many kinds ofsimulation and greatly enhances an experience of a virtual environmentor game. For example, in a simulated environment, the impact of a usercontrolled object against a “virtual wall” should feel as if a hardobject were impacted. Similarly, in 3-D virtual world simulations wherethe user can manipulate objects, force feedback is necessary torealistically simulate physical objects; for example, if a user touchesa pen to a table, the user should feel the impact of the pen on thetable. For simulations or games involving controlled vehicles, forcefeedback for controls such as a joystick can be desirable torealistically simulate experienced conditions, such as high accelerationin an aircraft, or the viscous, mushy feel of steering a car in mud. Aneffective human interface not only acts as an input device for trackingmotion, but also as an output device for producing realistic force or“feel” sensations.

Force feedback interface devices can provide physical sensations to theuser manipulating a user manipulable object of the interface devicethrough the use of computer-controlled actuators, such as motors,provided in the interface device. In most of the prior art forcefeedback interface devices, the host computer directly controls forcesoutput by controlled actuators of the interface device, i.e., a hostcomputer closes a control loop around the system to generate sensationsand maintain stability through direct host control. This configurationhas disadvantages in the inexpensive mass market, since the functions ofreading sensor data and outputting force values to actuators can be aburden on the host computer's processor which detracts from theperformance of the host in other host tasks and application execution.In addition, low bandwidth interfaces are often used, which reduces theability of the host computer to control realistic forces requiring highfrequency signals.

For example, in one type of force feedback interface described in U.S.Pat. No. 5,184,319, by J. Kramer, force and texture information isprovided to a user. The interface consists of an glove or “exoskeleton”which is worn over the user's appendages, such as fingers, arms, orbody. Forces can be applied to the user's appendages using tendonassemblies and actuators controlled by a computer system to simulateforce and textual feedback. However, the system described by Kramerincludes a host computer directly controlling the actuators of thedevice, and thus has the disadvantages mentioned above. In addition, theKramer device is not easily applicable to simulated environments wherean object is referenced in virtual space and force feedback is appliedto the object. The forces applied to the user in Kramer are withreference to the body of the user; the absolute location of the user'sappendages are not easily calculated. In addition, the exoskeletondevices of Kramer can be complex, cumbersome or even dangerous to theuser if extensive devices are worn over the user's appendages.

Typical multi-degree-of-freedom apparatuses that include force feedbackalso include several other disadvantages. Since actuators which supplyforce feedback tend to be heavier and larger than sensors, they wouldprovide inertial constraints if added to a device. There is also theproblem of coupled actuators, where each actuator is coupled to aprevious actuator in a chain such that a user who manipulates the objectmust carry the inertia of all of the subsequent actuators and linksexcept for the first actuator in the chain. These types of interfacesalso introduce tactile “noise” to the user through friction andcompliance in signal transmission and limit the degree of sensitivityconveyed to the user through the actuators of the device.

In other situations, low-cost and portable mechanical interfaces havingforce feedback are desirable. Active actuators, such as motors, generateforces on an interface device and the user manipulating the interfacedevice so that the interface device can move independently of the user.While active actuators often provide quite realistic force feedback,they can also be quite bulky and typically require large power suppliesto operate. In addition, active actuators typically require high speedcontrol signals to operate effectively and provide stability. In manysituations, such high speed control signals and high power drive signalsare not available or too costly, especially in the competitive, low-costmarket of personal computers. Furthermore, active actuators cansometimes prove unsafe for a user when strong, unexpected forces aregenerated on a user of the interface who does not expect those forces.

SUMMARY OF THE INVENTION

The present invention provides a human/computer interface apparatus andmethod which can provide multiple degrees of freedom and highlyrealistic force feedback to a user of the apparatus. The preferredapparatus includes a local microprocessor used for enabling feelsensations including virtual walls and viscous damping in a virtualenvironment, thus permitting a low-cost force feedback interface deviceto be implemented.

More specifically, an interface device of the present invention is usedin conjunction with a host computer for monitoring user manipulationsand for enabling the simulation of feel sensations in response to theuser manipulations, where the feel sensations are generated inaccordance with application software running on the host computer. Thedevice includes a user manipulatable object physically contacted by auser and movable in at least two degrees of freedom by the user and agimbal mechanism coupled to and providing at least two degrees offreedom to the user object. The user object can be a joystick, stylus,pool cue, or other object. A local microprocessor, separate from thehost computer system and operating simultaneously with the applicationsoftware on the host, enables communication with the host computer andreceives commands from the host, decodes the commands, outputs actuatorsignals in accordance with one or more of the commands, receives sensorsignals, and reports data to the host in response to one or more of thecommands. A communication interface is included for transmitting signalsfrom the host computer to the local microprocessor and vice versa, andcan be a serial communication bus such as RS232, or a wirelessinterface. Multiple actuators generate feel sensations by providing aforce on the user object in at least two degrees of freedom in responseto the actuator signals from the local microprocessor, and may includepassive actuators such as brakes. At least one sensor detects the motionof the user object and reports sensor signals to the localmicroprocessor representative of motion of the user object. Finally,memory is included locally to the local microprocessor for storingprogram instructions, including routines for enabling communicationbetween the local microprocessor and the host computer, for decodinghost commands, for reporting data to the host, and for generating feelsensations utilizing the actuators in accordance with software runningon the host computer. In one embodiment, a play mechanism such as aflexure is also included between actuator and user object. In someembodiments, the interface device includes a gimbal mechanism such as a5-bar closed-loop linkage or a slotted bail. A transmission mechanismcan be included to provide mechanical advantage, and may be a capstancable drive system including a flexible member such as a cable.

The feel sensation generated on the user is, in one embodiment, adamping sensation simulating a feel of motion through a fluid. A dampingconstant is initialized by the local microprocessor indicating thedegree of resistance experienced by the user. A current position of theuser object is stored by the local microprocessor, a difference betweencurrent and previous position values of the user object is determinedpreferably by the local microprocessor, and a sign of the difference isused as an indication of a direction of motion of the user object in oneor more of the degrees of freedom. A variable representing force outputis determined as a function of the damping constant and the difference,a digital representation of the variable is sent by the localmicroprocessor to a digital to analog converter (DAC), and a resultinganalog signal is output to at least one of the actuators.

In another embodiment, the feel sensation is a wall sensation simulatingthe feel of impacting a surface or obstruction. The wall sensation isgenerated at least in part preferably by the local microprocessor whichtracks the position of the user object by reading said sensors. The hostcomputer updates a display of the simulation in response to usermanipulation of the user object and determines that a simulatedobstruction has been encountered and that such an obstruction shouldrestrict motion of the user object in one or more directions. Theactuator generates a force to create a physical representation of saidrestriction of motion, thereby providing the user with a feel of hittingthe simulated obstruction. The local microprocessor also detects motionof the user object away from the simulated obstruction and deactivatesthe actuators, thereby simulating the feel of moving out of contact withthe obstruction. The simulation on the host computer may include acursor, where a location of the cursor on a display is updated by thehost computer in response to user manipulation of the user object, andwhere the wall sensation is generated in response to interaction betweenthe cursor and the obstruction.

The interface of the present invention enables force sensations in avirtual environment, such as hard walls and viscous damping,advantageously using a low cost interface device. A local microprocessorreceives commands from the host computer, decodes the commands, outputsactuator signals in accordance with the commands, receives sensorsignals, and reports data to the host in response to the commands, thusrelieving the host computer of substantial computational burden andallowing a slower interface between host and interface device to beused. Viscous damping is enabled using the local microprocessor tocompute present and previous positions of the user manipulated object todetermine an amount of viscous force. Virtual walls are likewise enabledby using the microprocessor to track positions of the user object todetermine when wall forces are output. These improvements allow acomputer system to accurately control a low-cost interface providingrealistic force feedback.

These and other advantages of the present invention will become apparentto those skilled in the art upon a reading of the followingspecification of the invention and a study of the several figures of thedrawing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a virtual reality system which interfacea joystick with a computer system to enable feel sensations to a user ofthe joystick;

FIG. 2 is a schematic diagram of a mechanical apparatus for providingmechanical input and output to a computer system;

FIG. 3 is a perspective front view of a preferred embodiment of themechanical apparatus of FIG. 2;

FIG. 4 is a perspective rear view of the embodiment of the mechanicalapparatus of FIG. 3;

FIG. 5 is a perspective detailed view of a capstan drive mechanism usedfor two degrees of motion in the present invention;

FIG. 5 a is a side elevational view of the capstan drive mechanism shownin FIG. 5;

FIG. 5 b is a detailed side view of a pulley and cable of the capstandrive mechanism of FIG. 5;

FIG. 6 is a perspective view of a center capstan drive mechanism for alinear axis member of the mechanical apparatus shown in FIG. 3;

FIG. 6 a is a cross sectional top view of a pulley and linear axismember used in the capstan drive mechanism of FIG. 6;

FIG. 6 b is a cross sectional side view of the linear axis member andtransducer shown in FIG. 6;

FIG. 7 is a perspective view of an embodiment of the apparatus of FIG. 2having a stylus object for the user;

FIG. 8 is a perspective view of an embodiment of the apparatus of FIG. 2having a joystick object for the user;

FIG. 9 is a block diagram of a computer and the interface between thecomputer and the mechanical apparatus of FIG. 2;

FIGS. 10–11 are schematic diagrams of a suitable circuits for a digitalto analog controller and power amplification circuit for the interfaceof FIG. 9;

FIG. 12 a is a schematic diagram of a transducer system in accordancewith the present invention;

FIG. 12 b is a schematic diagram of an alternate embodiment of thetransducer system of FIG. 12 a;

FIG. 13 is a schematic diagram of the transducer system of FIG. 12 awhich provides backlash between an actuator and an object;

FIG. 14 a is a sectional side view of the actuator shaft and coupling ofthe transducer system of FIG. 13;

FIG. 14 b is a sectional side view of the actuator shaft and coupling ofFIG. 14 a;

FIG. 15 is a detailed view of the keyed portions of the actuator shaftand coupling of FIG. 14 a;

FIG. 16 is a schematic diagram of the system of FIG. 12 a having aflexible coupling;

FIG. 17 is a schematic diagram of the transducer systems of FIGS. 12 aand 12 b coupled to the mechanical apparatus of FIG. 2;

FIG. 18 is a perspective view of the transducer systems of FIGS. 12 aand 12 b coupled to the mechanical apparatus of FIG. 8;

FIG. 19 is a perspective view of a slotted yoke mechanical apparatusused with the transducer system of FIG. 12 a;

FIG. 20 a is a block diagram showing an interface for a mechanicalapparatus having the transducer system of FIG. 12 a;

FIG. 20 b is a block diagram showing an interface having preprocessinghardware;

FIG. 21 is a flow diagram illustrating a main command loop executed bythe microprocessor of FIGS. 20 a and 20 b;

FIGS. 22 a and 22 b are subroutines for use with the main command loopof FIG. 21;

FIG. 23 is a flow diagram illustrating a method for controlling anactuator of the transducer system of FIG. 12 a in the simulation of afluid environment; and

FIG. 24 is a flow diagram illustrating a method for controlling anactuator of the transducer system of FIG. 12 a when encountering anobstacle in a virtual environment.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In FIG. 1, a force feedback system 10 includes a human/computerinterface apparatus 12, an electronic interface 14, and a host computer16. The illustrated system 10 can used for a virtual reality simulation,video game, training procedure or simulation, use of a computerapplication program, or other application. In one preferred embodiment,a user manipulatable object 44 is grasped by a user and manipulated.Images are displayed on a display apparatus, such as screen 20, of thecomputer 16 in response to such manipulations.

The computer 16 is a preferably a personal computer or workstation, suchas an IBM-PC compatible computer, Macintosh personal computer, or a SUNor Silicon Graphics workstation. Most commonly, the digital processingsystem is a personal computer which operates under the Windows™, Unix,MacOS, or similar operating system and may include a host microprocessorsuch as a Pentium, PowerPC, or other type of microprocessor.

The software running on the host computer 16 may be of a wide variety.Suitable software drivers which interface simulation software withcomputer input/output (I/O) devices are available from Immersion HumanInterface Corporation of Santa Clara, Calif. For example, in medicalsimulations, commercially available software such as, for example,Teleos™ from High Techsplanations of Rockville, Md. can be used.

The interface apparatus 12 as illustrated in FIG. 1 is used to providean interface to a video game or simulation running on host computer 16.For example, a user object 44 grasped by the user in operating theapparatus 12 may be a joystick handle 28 movable in one or more degreesof freedom, as described in greater detail subsequently. It will beappreciated that a great number of other types of user objects can beused with the method and apparatus of the present invention. In fact,the present invention can be used with any mechanical object where it isdesirable to provide a human/computer interface with three to sixdegrees of freedom. Such objects may include joysticks, styluses,endoscopic or other similar surgical tools used in medical procedures,catheters, hypodermic needles, wires, fiber optic bundles, screwdrivers, pool cues, etc. Some of these other objects are described indetail subsequently.

A mechanical apparatus 25 for interfacing mechanical input and output isshown in phantom lines. Apparatus 25 mechanically provides the degreesof freedom available to the user object 44 and allows sensors to sensemovement in those degrees of freedom and actuators to provide forces inthose degrees of freedom. Mechanical apparatus 25 is described ingreater detail below.

The mechanical apparatus is adapted to provide data from which acomputer or other computing device such as a microprocessor (see FIGS.20 a and 20 b) can ascertain the position and/or orientation of the userobject as it moves in space. This information is then translated to animage on a computer display apparatus such as screen 20. The mechanicalapparatus may be used, for example, by a user to change the position ofa cursor on display screen 20 by changing the position and/ororientation of the user object 44, the computer 16 being programmed tochange the position of the cursor in proportion to the change inposition and/or orientation of the user object. In other words, the userobject is moved through space by the user to designate to the computerhow or where to move the cursor on the display apparatus. It ispreferable that the mechanical apparatus provide the user object withenough degrees of freedom to enable the amount of flexibility needed tomove the cursor as desired.

The electronic interface 14 is a component of the human/computerinterface apparatus 12 and couples the apparatus 12 to the computer 16.More particularly, interface 14 is used in preferred embodiments tocouple the various actuators and sensors contained in apparatus 12(which actuators and sensors are described in detail below) to computer16. A suitable interface 14 is described in detail with reference toFIG. 9.

The electronic interface 14 is coupled to mechanical apparatus 25 of theapparatus 12 by a cable 30 and is coupled to the computer 16 by a cable32. In other embodiments, signal can be sent to and from interface 14and computer 16 by wireless transmission and reception. In someembodiments of the present invention, interface 14 serves solely as aninput device for the computer 16. In other embodiments of the presentinvention, interface 14 serves solely as an output device for thecomputer 16. In preferred embodiments of the present invention, theinterface 14 serves as an input/output (I/O) device for the computer 16.Interface 14 may be included in host computer 16, in mechanicalapparatus 12, or be provided in separate housing as shown in FIG. 1.

In FIG. 2, a schematic diagram of mechanical apparatus 25 for providingmechanical input and output in accordance with the present invention isshown. Apparatus 25 includes a gimbal mechanism 38 and a linear axismember 40. A user object 44 is preferably coupled to linear axis member40.

Gimbal mechanism 38, in the described embodiment, provides support forapparatus 25 on a grounded surface 56 (schematically shown as part ofmember 46). Gimbal mechanism 38 is preferably a five-member linkage thatincludes a ground member 46, extension members 48 a and 48 b, andcentral members 50 a and 50 b. Ground member 46 is coupled to a base orsurface which provides stability for apparatus 25. Ground member 46 isshown in FIG. 2 as two separate members coupled together throughgrounded surface 56. The members of gimbal mechanism 38 are rotatablycoupled to one another through the use of bearings or pivots, whereinextension member 48 a is rotatably coupled to ground member 46 and canrotate about an axis A, central member 50 a is rotatably coupled toextension member 48 a and can rotate about a floating axis D, extensionmember 48 b is rotatably coupled to ground member 46 and can rotateabout axis B, central member 50 b is rotatably coupled to extensionmember 48 b and can rotate about floating axis E, and central member 50a is rotatably coupled to central member 50 b at a center point P at theintersection of axes D and E. The axes D and E are “floating” in thesense that they are not fixed in one position as are axes A and B. AxesA and B are substantially mutually perpendicular. As used herein,“substantially perpendicular” will mean that two objects or axis areexactly or almost perpendicular, i.e. at least within five degrees orten degrees of perpendicular, or more preferably within less than onedegree of perpendicular. Similarly, the term “substantially parallel”will mean that two objects or axis are exactly or almost parallel, i.e.are at least within five or ten degrees of parallel, and are preferablywithin less than one degree of parallel.

Gimbal mechanism 38 is formed as a five member closed chain. Each end ofone member is coupled to the end of a another member. The five-memberlinkage is arranged such that extension member 48 a, central member 50a, and central member 50 b can be rotated about axis A in a first degreeof freedom. The linkage is also arranged such that members 48 b, 50 b,and 50 a can be rotated about axis B in a second degree of freedom. Theangle θ increases or decreases with movement of object 44 into or out ofthe page, respectively.

Linear axis member 40 is preferably an elongated rod-like member whichis coupled to central member 50 a and central member 50 b at the pointof intersection P of axes A and B. As shown in FIG. 1, linear axismember 40 can be provided as joystick handle 28 of user object 44. Inother embodiments, linear axis member 40 is coupled to a differentobject. Linear axis member 40 is coupled to gimbal mechanism 38 suchthat it extends out of the plane defined by axis A and axis B. Linearaxis member 40 can be rotated about axis A by rotating extension member48 a, central member 50 a, and central member 50 b in a first revolutedegree of freedom, shown as arrow line 51. Member 40 can also be rotatedabout axis B by rotating extension member 50 b and the two centralmembers about axis B in a second revolute degree of freedom, shown byarrow line 52. Being also translatably coupled to the ends of centralmembers 50 a and 50 b, linear axis member 40 can be linearly moved alongfloating axis C, providing a third degree of freedom as shown by arrows53. Axis C can, of course, be rotated about one or both axes A and B asmember 40 is rotated about these axes.

Also preferably coupled to gimbal mechanism 38 and linear axis member 40are transducers, such as sensors and actuators. Such transducers arepreferably coupled at the link points between members of the apparatusand provide input to and output from an electrical system, such ascomputer 16. Transducers that can be used with the present invention aredescribed in greater detail with respect to FIG. 2.

User object 44 is coupled to apparatus 25 and is preferably an interfaceobject for a user to grasp or otherwise manipulate in three dimensional(3D) space. One preferred user object 44 is the joystick handle 28 asshown in FIG. 1. Handle 28 can be implemented as part of, or as theentire, linear axis member 40. Other examples of user objects aredescribed in subsequent embodiments. User object 44 may be moved in allthree degrees of freedom provided by gimbal mechanism 38 and linear axismember 40 and additional degrees of freedom as described below. As userobject 44 is moved about axis A, floating axis D varies its position,and as user object 44 is moved about axis B, floating axis E varies itsposition.

FIGS. 3 and 4 are perspective views of a specific embodiment of amechanical apparatus 25′ for providing mechanical input and output to acomputer system in accordance with the present invention. FIG. 3 shows afront view of apparatus 25′, and FIG. 4 shows a rear view of theapparatus. Apparatus 25′ includes a gimbal mechanism 38, a linear axismember 40, and transducers 42. A user object 44, shown in thisembodiment as a laparoscopic medical instrument having a grip portion26, is coupled to apparatus 25′. Apparatus 25′ operates in substantiallythe same fashion as apparatus 25 described with reference to FIG. 2.

Gimbal mechanism 38 provides support for apparatus 25′ on a groundedsurface 56, such as a table top or similar surface. The members andjoints (“bearings”) of gimbal mechanism 38 are preferably made of alightweight, rigid, stiff metal, such as aluminum, but can also be madeof other rigid materials such as other metals, plastic, etc. Gimbalmechanism 38 includes a ground member 46, capstan drive mechanisms 58,extension members 48 a and 48 b, central drive member 50 a, and centrallink member 50 b. Ground member 46 includes a base member 60 andvertical support members 62. Base member 60 is coupled to groundedsurface 56 and provides two outer vertical surfaces 61 which are in asubstantially perpendicular relation which each other. A verticalsupport member 62 is coupled to each of these outer surfaces of basemember 60 such that vertical members 62 are in a similar substantially90-degree relation with each other.

A capstan drive mechanism 58 is preferably coupled to each verticalmember 62. Capstan drive mechanisms 58 are included in gimbal mechanism38 to provide mechanical advantage without introducing friction andbacklash to the system. A capstan drum 59 of each capstan drivemechanism is rotatably coupled to a corresponding vertical supportmember 62 to form axes of rotation A and B, which correspond to axes Aand B as shown in FIG. 2. The capstan drive mechanisms 58 are describedin greater detail with respect to FIG. 5. Extension member 48 a isrigidly coupled to capstan drum 59 and is rotated about axis A ascapstan drum 59 is rotated. Likewise, extension member 48 b is rigidlycoupled to the other capstan drum 59 and can be rotated about axis B.Both extension members 48 a and 48 b are formed into a substantially90-degree angle with a short end 49 coupled to capstan drum 59. Centraldrive member 50 a is rotatably coupled to a long end 55 of extensionmember 48 a and extends at a substantially parallel relation with axisB. Similarly, central link member 50 b is rotatably coupled to the longend of extension member 48 b and extends at a substantially parallelrelation to axis A (as better viewed in FIG. 4). Central drive member 50a and central link member 50 b are rotatably coupled to each other atthe center of rotation of the gimbal mechanism, which is the point ofintersection P of axes A and B. Bearing 64 connects the two centralmembers 50 a and 50 b together at the intersection point P.

Gimbal mechanism 38 provides two degrees of freedom to an objectpositioned at or coupled to the center point P of rotation. An object ator coupled to point P can be rotated about axis A and B or have acombination of rotational movement about these axes.

Linear axis member 40 is a cylindrical member that is preferably coupledto central members 50 a and 50 b at intersection point P. In alternateembodiments, linear axis member 40 can be a non-cylindrical memberhaving a cross-section of, for example, a square or other polygon.Member 40 is positioned through the center of bearing 64 and throughholes in the central members 50 a and 50 b. The linear axis member canbe linearly translated along axis C, providing a third degree of freedomto user object 44 coupled to the linear axis member. Linear axis member40 can preferably be translated by a transducer 42 using a capstan drivemechanism similar to capstan drive mechanism 58. The translation oflinear axis member 40 is described in greater detail with respect toFIG. 6.

Transducers 42 are preferably coupled to gimbal mechanism 38 to provideinput and output signals between mechanical apparatus 25′ and computer16. In the described embodiment, transducers 42 include two groundedtransducers 66 a and 66 b, central transducer 68, and shaft transducer70. The housing of grounded transducer 66 a is preferably coupled tovertical support member 62 and preferably includes both an actuator forproviding force in or otherwise influencing the first revolute degree offreedom about axis A and a sensor for measuring the position of object44 in or otherwise influenced by the first degree of freedom about axisA, i.e., the transducer 66 a is “associated with” or “related to” thefirst degree of freedom. A rotational shaft of actuator 66 a is coupledto a pulley of capstan drive mechanism 58 to transmit input and outputalong the first degree of freedom. The capstan drive mechanism 58 isdescribed in greater detail with respect to FIG. 5. Grounded transducer66 b preferably corresponds to grounded transducer 66 a in function andoperation. Transducer 66 b is coupled to the other vertical supportmember 62 and is an actuator/sensor which influences or is influenced bythe second revolute degree of freedom about axis B.

Grounded transducers 66 a and 66 b are preferably bi-directionaltransducers which include sensors and actuators. The sensors arepreferably relative optical encoders which provide signals to measurethe angular rotation of a shaft of the transducer. The electricaloutputs of the encoders are routed to computer interface 14 via buses 67a and 67 b and are detailed with reference to FIG. 9. Other types ofsensors can also be used, such as potentiometers, etc.

It should be noted that the present invention can utilize both absoluteand relative sensors. An absolute sensor is one which the angle of thesensor is known in absolute terms, such as with an analog potentiometer.Relative sensors only provide relative angle information, and thusrequire some form of calibration step which provide a reference positionfor the relative angle information. The sensors described herein areprimarily relative sensors. In consequence, there is an impliedcalibration step after system power-up wherein the sensor's shaft isplaced in a known position within the apparatus 25′ and a calibrationsignal is provided to the system to provide the reference positionmentioned above. All angles provided by the sensors are thereafterrelative to that reference position. Such calibration methods are wellknown to those skilled in the art and, therefore, will not be discussedin any great detail herein.

Transducers 66 a and 66 b also preferably include actuators which, inthe described embodiment, are linear current control motors, such as DCservo motors. These motors preferably receive current signals to controlthe direction and torque (force output) that is produced on a shaft; thecontrol signals for the motor are produced by computer interface 14 oncontrol buses 67 a and 67 b and are detailed with respect to FIG. 9. Themotors may include brakes which allow the rotation of the shaft to behalted in a short span of time. A suitable transducer for the presentinvention including both an optical encoder and current controlled motoris a 20 W basket wound servo motor manufactured by Maxon of Burlingame,Calif.

In alternate embodiments, other types of motors can be used, such as astepper motor controlled with pulse width modulation of an appliedvoltage, or pneumatic motors. However, the present invention is muchmore suited to the use of linear current controlled motors. This isbecause voltage pulse width modulation or stepper motor control involvesthe use of steps or pulses which can be felt as “noise” by the user.Such noise corrupts the virtual simulation. Linear current control issmoother and thus more appropriate for the present invention.

Passive actuators can also be used in transducers 66 a, 66 b and 68.Magnetic particle brakes or friction brakes can be used in addition toor instead of a motor to generate a passive resistance or friction in adegree of motion. An alternate preferred embodiment only includingpassive actuators may not be as realistic as an embodiment includingmotors; however, the passive actuators are typically safer for a usersince the user does not have to fight generated forces.

In other embodiments, all or some of transducers 42 can include onlysensors to provide an apparatus without force feedback along designateddegrees of freedom. Similarly, all or some of transducers 42 can beimplemented as actuators without sensors to provide only force feedback.

Central transducer 68 is coupled to central drive member 50 a andpreferably includes an actuator for providing force in the linear thirddegree of freedom along axis C and a sensor for measuring the positionof object 44 along the third degree of freedom. The rotational shaft ofcentral transducer 68 is coupled to a translation interface coupled tocentral drive member 50 a which is described in greater detail withrespect to FIG. 6. In the described embodiment, central transducer 68 isan optical encoder and DC servo motor combination similar to theactuators 66 a and 66 b described above.

The transducers 66 a, 66 b and 68 of the described embodiment areadvantageously positioned to provide a very low amount of inertia to theuser handling object 44. Transducer 66 a and transducer 66 b aredecoupled, meaning that the transducers are both directly coupled toground member 46 which is coupled to ground surface 56, i.e. the groundsurface carries the weight of the transducers, not the user handlingobject 44. The weights and inertia of the transducers 66 a and 66 b arethus substantially negligible to a user handling and moving object 44.This provides a more realistic interface to a virtual reality system,since the computer can control the transducers to provide substantiallyall of the forces felt by the user in these degrees of motion. Apparatus25′ is a high bandwidth force feedback system, meaning that highfrequency signals can be used to control transducers 42 and these highfrequency signals will be applied to the user object with highprecision, accuracy, and dependability. The user feels very littlecompliance or “mushiness” when handling object 44 due to the highbandwidth. In contrast, in typical prior art arrangements ofmulti-degree of freedom interfaces, one actuator “rides” upon anotheractuator in a serial chain of links and actuators. This low bandwidtharrangement causes the user to feel the inertia of coupled actuatorswhen manipulating an object.

Central transducer 68 is positioned near the center of rotation of tworevolute degrees of freedom. Though the transducer 68 is not grounded,its central position permits a minimal inertial contribution to themechanical apparatus 25′ along the provided degrees of freedom. A usermanipulating object 44 thus will feel minimal internal effects from theweight of transducers 66 a, 66 b and 68.

Shaft transducer 70 preferably includes a sensor and is provided in thedescribed embodiment to measure a fourth degree of freedom for object44. Shaft transducer 70 is preferably positioned at the end of linearaxis member 40 that is opposite to the object 44 and measures therotational position of object 44 about axis C in the fourth degree offreedom, as indicated by arrow 72. Shaft transducer 70 is described ingreater detail with respect to FIGS. 6 and 6 b. Preferably, shafttransducer 72 is implemented using an optical encoder similar to theencoders described above. A suitable input transducer for use in thepresent invention is an optical encoder model SI marketed by U.S.Digital of Vancouver, Wash. In the described embodiment, shafttransducer 70 only includes a sensor and not an actuator. This isbecause for typical medical procedures, which is one intendedapplication for the embodiment shown in FIGS. 3 and 4, rotational forcefeedback to a user about axis C is typically not required to simulateactual operating conditions. However, in alternate embodiments, anactuator such as a motor can be included in shaft transducer 70 similarto transducers 66 a, 66 b, and 68.

Object 44 is shown in FIGS. 3 and 4 as a grip portion 26 of alaparoscopic tool. A shaft portion 27 is implemented as linear axismember 40. A user can move the laparoscopic tool about axes A and B, andcan translate the tool along axis C and rotate the tool about axis C.The movements in these four degrees of freedom will be sensed andtracked by computer system 16. Forces can be applied preferably in thefirst three degrees of freedom by the computer system to simulate thetool impacting a portion of subject body, experiencing resistance movingthrough tissues, etc.

Optionally, additional transducers can be added to apparatus 25′ toprovide additional degrees of freedom for object 44. For example, atransducer can be added to grip 26 of laparoscopic tool 18 to sense whenthe user moves the two portions 26 a and 26 b relative to each other tosimulate extending the cutting blade of the tool. Such a laparoscopictool sensor is described in U.S. patent application Ser. No. 08/275,120,filed Jul. 14, 1994 and entitled “Method and Apparatus for ProvidingMechanical I/O for Computer Systems” assigned to the assignee of thepresent invention and incorporated herein by reference in its entirety.

FIG. 5 is a perspective view of a capstan drive mechanism 58 shown insome detail. As an example, the drive mechanism 58 coupled to extensionarm 48 b is shown; the other capstan drive 58 coupled to extension arm48 a is substantially similar to the mechanism presented here. Capstandrive mechanism 58 includes capstan drum 59, capstan pulley 76, and stop78. Capstan drum 59 is preferably a wedge-shaped member having legportion 82 and a curved portion 84. Other shapes of member 59 can alsobe used. Leg portion 82 is pivotally coupled to vertical support member62 at axis B (or axis A for the opposing capstan drive mechanism).Extension member 48 b is rigidly coupled to leg portion 82 such thatwhen capstan drum 59 is rotated about axis B, extension member 48 b isalso rotated and maintains the position relative to leg portion 82 asshown in FIG. 5. Curved portion 84 couples the two ends of leg portion82 together and is preferably formed in an arc centered about axis B.Curved portion 84 is preferably positioned such that its bottom edge 86is about 0.030 inches above pulley 76.

Cable 80 is preferably a thin metal cable connected to curved portion 84of the capstan drum. Other types of durable cables, cords, wire, etc.can be used as well. Cable 80 is attached at a first end to curvedportion 84 near an end of leg portion 82 and is drawn tautly against theouter surface 86 of curved portion 84. Cable 80 is wrapped around pulley76 a number of times and is then again drawn tautly against outersurface 86. The second end of cable 80 is firmly attached to the otherend of curved portion 84 near the opposite leg of leg portion 82. Thecable transmits rotational force from pulley 76 to the capstan drum 59,causing capstan drum 59 to rotate about axis B as explained below. Thecable also transmits rotational force from drum 59 to the pulley andtransducer 66 b. The tension in cable 80 should be at a level so thatnegligible backlash or play occurs between capstan drum 59 and pulley76. Preferably, the tension of cable 80 can be adjusted by pulling more(or less) cable length through an end of curved portion 84. Caps 81 onthe ends of curved portion 84 can be used to easily tighten cable 80.Each cap 81 is preferably tightly coupled to cable 80 and includes apivot and tightening screw which allow the cap to move in a directionindicated by arrow 83 to tighten cable 80.

Capstan pulley 76 is a threaded metal cylinder which transfersrotational force from transducer 66 b to capstan drum 59 and fromcapstan drum 59 to transducer 66 b. Pulley 76 is rotationally coupled tovertical support member 62 by a shaft 88 (shown in FIG. 5 a) positionedthrough a bore of vertical member 62 and rigidly attached to pulley 76.Transducer 66 b is coupled to pulley 76 by shaft 88 through verticalsupport member 62. Rotational force is applied from transducer 66 b topulley 76 when the actuator of transducer 66 b rotates the shaft. Thepulley, in turn, transmits the rotational force to cable 80 and thusforces capstan drum 59 to rotate in a direction about axis B. Extensionmember 48 b rotates with capstan drum 59, thus causing force along thesecond degree of freedom for object 44. Note that pulley 76, capstandrum 59 and extension member 48 b will only actually rotate if the useris not applying the same amount or a greater amount of rotational forceto object 44 in the opposite direction to cancel the rotationalmovement. In any event, the user will feel the rotational force alongthe second degree of freedom in object 44 as force feedback.

The capstan mechanism 58 provides a mechanical advantage to apparatus25′ so that the force output of the actuators can be increased. Theratio of the diameter of pulley 76 to the diameter of capstan drum 59(i.e. double the distance from axis B to the bottom edge 86 of capstandrum 59) dictates the amount of mechanical advantage, similar to a gearsystem. In the preferred embodiment, the ratio of drum to pulley isequal to 15:1, although other ratios can be used in other embodiments.

Similarly, when the user moves object 44 in the second degree offreedom, extension member 48 b rotates about axis B and rotates capstandrum 59 about axis B as well. This movement causes cable 80 to move,which transmits the rotational force to pulley 76. Pulley 76 rotates andcauses shaft 88 to rotate, and the direction and magnitude of themovement is detected by the sensor of transducer 66 b. A similar processoccurs along the first degree of freedom for the other capstan drivemechanism 58. As described above with respect to the actuators, thecapstan drive mechanism provides a mechanical advantage to amplify thesensor resolution by a ratio of drum 59 to pulley 76 (15:1 in thepreferred embodiment).

Stop 78 is rigidly coupled to vertical support member 62 a fewmillimeters above curved portion 84 of capstan drum 59. Stop 78 is usedto prevent capstan drum 59 from moving beyond a designated angularlimit. Thus, drum 59 is constrained to movement within a range definedby the arc length between the ends of leg portion 82. This constrainedmovement, in turn, constrains the movement of object 44 in the first twodegrees of freedom. In the described embodiment, stop 78 is acylindrical member inserted into a threaded bore in vertical supportmember 62.

FIG. 5 a is a side elevational view of capstan mechanism 58 as shown inFIG. 5. Cable 80 is shown routed along the bottom side 86 of curvedportion 84 of capstan drum 59. Cable 80 is preferably wrapped aroundpulley 76 so that the cable is positioned between threads 90, i.e., thecable is guided by the threads as shown in greater detail in FIG. 5 b.As pulley 76 is rotated by transducer 66 b or by the manipulations ofthe user, the portion of cable 80 wrapped around the pulley travelscloser to or further from vertical support member 62, depending on thedirection that pulley 76 rotates. For example, if pulley 76 is rotatedcounterclockwise (when viewing the pulley as in FIG. 5), then cable 80moves toward vertical support member 62 as shown by arrow 92.

Capstan drum 59 also rotates clockwise as shown by arrow 94. The threadsof pulley 76 are used mainly to provide cable 80 with a better grip onpulley 76. In alternate embodiments, pulley 76 includes no threads, andthe high tension in cable 80 allows cable 80 to grip pulley 76.

Capstan drive mechanism 58 is advantageously used in the presentinvention to provide transmission of forces and mechanical advantagebetween transducers 66 a and 66 b and object 44 without introducingsubstantial compliance, friction, or backlash to the system. A capstandrive provides increased stiffness, so that forces are transmitted withnegligible stretch and compression of the components. The amount offriction is also reduced with a capstan drive mechanism so thatsubstantially “noiseless” tactile signals can be provided to the user.In addition, the amount of backlash contributed by a capstan drive isalso negligible. “Backlash” is the amount of play that occurs betweentwo coupled rotating objects in a gear or pulley system. Two gears,belts, or other types of drive mechanisms could also be used in place ofcapstan drive mechanism 58 in alternate embodiments to transmit forcesbetween transducer 66 a and extension member 48 b. However, gears andthe like typically introduce some backlash in the system. In addition, auser might be able to feel the interlocking and grinding of gear teethduring rotation of gears when manipulating object 44; the rotation in acapstan drive mechanism is much less noticeable.

FIG. 6 is a perspective view of central drive member 50 a and linearaxis member 40 shown in some detail. Central drive member 50 a is shownin a partial cutaway view to expose the interior of member 50 a. Centraltransducer 68 is coupled to one side of central drive member 50 a. Inthe described embodiment, a capstan drive mechanism is used to transmitforces between transducer 68 and linear axis member 40 along the thirddegree of freedom. A rotatable shaft 98 of transducer 68 extends througha bore in the side wall of central drive member 50 a and is coupled to acapstan pulley 100. Pulley 100 is described in greater detail below withrespect to FIG. 6 a.

Linear axis member 40 preferably includes an exterior sleeve 91 and aninterior shaft 93 (described with reference to FIG. 6 b, below).Exterior sleeve 91 is preferably a partially cylindrical member having aflat 41 provided along its length. Flat 41 prevents sleeve 91 fromrotating about axis C in the fourth degree of freedom described above.Linear axis member 40 is provided with a cable 99 which is secured oneach end of member 40 by tension caps 101. Cable 99 preferably runs downa majority of the length of exterior sleeve 91 on the surface of flat 41and can be tightened, for example, by releasing a screw 97, pulling anend of cable 99 until the desired tension is achieved, and tighteningscrew 97. Similarly to the cable of the capstan mechanism described withreference to FIG. 5, cable 99 should have a relatively high tension.

As shown in FIG. 6 a, cable 99 is wrapped a number of times aroundpulley 100 so that forces can be transmitted between pulley 100 andlinear axis member 40. Pulley 100 preferably includes a central axleportion 103 and end lip portions 105. Exterior sleeve 91 is preferablypositioned such that flat 41 of the sleeve is touching or is very closeto lip portions 105 on both sides of axle portion 103. The cable 99portion around pulley 100 is wrapped around central axle portion 103 andmoves along portion 103 towards and away from shaft 98 as the pulley isrotated clockwise and counterclockwise, respectively. The diameter ofaxle portion 103 is smaller than lip portion 105, providing spacebetween the pulley 100 and flat 41 where cable 99 is attached andallowing free movement of the cable. Pulley 100 preferably does notinclude threads, unlike pulley 76, since the tension in cable 99 allowsthe cable to grip pulley 100 tightly. In other embodiments, pulley 100can be a threaded or unthreaded cylinder similar to capstan pulley 76described with reference to FIG. 5.

Using the capstan drive mechanism, transducer 68 can translate linearaxis member 40 along axis C when the pulley is rotated by the actuatorof transducer 68. Likewise, when linear axis member 40 is translatedalong axis C by the user manipulating object 44, pulley 100 and shaft 98are rotated; this rotation is detected by the sensor of transducer 68.The capstan drive mechanism provides low friction and smooth, rigidoperation for precise movement of linear axis member 40 and accurateposition measurement of the member 40.

Other drive mechanisms can also be used to transmit forces to linearaxis member and receive positional information from member 40 along axisC. For example, a drive wheel made of a rubber-like material or otherfrictional material can be positioned on shaft 98 to contact linear axismember 40 along the edge of the wheel. The wheel can cause forces alongmember 40 from the friction between wheel and linear axis member. Such adrive wheel mechanism is disclosed in the abovementioned applicationSer. No. 08/275,120 as well as in U.S. patent application Ser. No.08/344,148, filed Nov. 23, 1994 and entitled “Method and Apparatus forProviding Mechanical I/O for Computer Systems Interfaced with ElongatedFlexible Objects” assigned to the assignee of the present invention andincorporated herein by reference in its entirety. Linear axis member 40can also be a single shaft in alternate embodiments instead of a dualpart sleeve and shaft.

Referring to the cross sectional side view of member 40 and transducer70 shown in FIG. 6 b, interior shaft 93 is positioned inside hollowexterior sleeve 91 and is rotatably coupled to sleeve 91. A first end107 of shaft 93 preferably extends beyond sleeve 91 and is coupled toobject 44. When object 44 is rotated about axis C, shaft 93 is alsorotated about axis C in the fourth degree of freedom within sleeve 91.Shaft 93 is translated along axis C in the third degree of freedom whensleeve 91 is translated. Alternatively, interior shaft 93 can be coupledto a shaft of object 44 within exterior sleeve 91. For example, a shortportion of shaft 27 of laparoscopic tool 18 can extend into sleeve 91and be coupled to shaft 93 within the sleeve, or shaft 27 can extend allthe way to transducer 70 and functionally be used as shaft 93.

Shaft 93 is coupled at its second end 109 to transducer 70, which, inthe preferred embodiment, is an optical encoder sensor. The housing 111of transducer 70 is rigidly coupled to exterior sleeve 91 by a cap 115,and a shaft 113 of transducer 70 is coupled to interior shaft 93 so thattransducer 70 can measure the rotational position of shaft 93 and object44. In alternate embodiments, an actuator can also be included intransducer 70 to provide rotational forces about axis C to shaft 93.

FIG. 7 is a perspective view of an alternate embodiment of themechanical apparatus 25″ and user object 44 of the present invention.Mechanical apparatus 25″ shown in FIG. 7 operates substantially the sameas apparatus 25′ shown in FIGS. 3 and 4. User object 44, however, is astylus 102 which the user can grasp and move in six degrees of freedom.By “grasp”, it is meant that users may releasably engage a grip portionof the object in some fashion, such as by hand, with their fingertips,or even orally in the case of handicapped persons. Stylus 102 can besensed and force can be applied in various degrees of freedom by acomputer system and interface such as computer 16 and interface 14 ofFIG. 1. Stylus 102 can be used in virtual reality simulations in whichthe user can move the stylus in 3D space to point to objects, writewords, drawings, or other images, etc. For example, a user can view avirtual environment generated on a computer screen or in 3D goggles. Avirtual stylus can be presented in a virtual hand of the user. Thecomputer system tracks the position of the stylus with sensors as theuser moves it. The computer system also provides force feedback to thestylus when the user moves the stylus against a virtual desk top, writeson a virtual pad of paper, etc. It thus appears and feels to the userthat the stylus is contacting a real surface.

Stylus 102 preferably is coupled to a floating gimbal mechanism 104which provides two degrees of freedom in addition to the four degrees offreedom provided by apparatus 25′ described with reference to FIGS. 3and 4. Floating gimbal mechanism 104 includes a U-shaped member 106which is rotatably coupled to an axis member 108 by a shaft 109 so thatU-shaped member 106 can rotate about axis F. Axis member 108 is rigidlycoupled to linear axis member 40. In addition, the housing of atransducer 110 is coupled to U-shaped member 106 and a shaft oftransducer 110 is coupled to shaft 109. Shaft 109 is preferably lockedinto position within axis member 108 so that as U-shaped member 106 isrotated, shaft 109 does not rotate. Transducer 110 is preferably asensor, such as an optical encoder as described above with reference totransducer 70, which measures the rotation of U-shaped member 106 aboutaxis F in a fifth degree of freedom and provides electrical signalsindicating such movement to interface 14.

Stylus 102 is preferably rotatably coupled to U-shaped member 106 by ashaft (not shown) extending through the U-shaped member. This shaft iscoupled to a shaft of transducer 112, the housing of which is coupled toU-shaped member 106 as shown. Transducer 112 is preferably a sensor,such as an optical encoder as described above, which measures therotation of stylus 102 about the lengthwise axis G of the stylus in asixth degree of freedom.

In the described embodiment of FIG. 7, six degrees of freedom of stylus102 are sensed. Thus, both the position (x, y, z coordinates) and theorientation (roll, pitch, yaw) of the stylus can be detected by computer16 to provide a highly realistic simulation. Other mechanisms besidesthe floating gimbal mechanism 104 can be used to provide the fifth andsixth degrees of freedom. In addition, forces can be applied in threedegrees of freedom for stylus 102 to provide 3D force feedback. Inalternate embodiments, actuators can also be included in transducers 70,110, and 112. However, actuators are preferably not included for thefourth, fifth, and sixth degrees of freedom in the described embodiment,since actuators are typically heavier than sensors and, when positionedat the locations of transducers 70, 100, and 112, would create moreinertia in the system. In addition, the force feedback for thedesignated three degrees of freedom allows impacts and resistance to besimulated, which is typically adequate in many virtual realityapplications. Force feedback in the fourth, fifth, and sixth degrees offreedom would allow torques on stylus 102 to be simulated as well, whichmay or may not be useful in a simulation.

FIG. 8 is a perspective view of a second alternate embodiment of themechanical apparatus 25′″ and user object 44 of the present invention.Mechanical apparatus 25′″ shown in FIG. 8 operates substantially thesame as apparatus 25′ shown in FIGS. 3 and 4. User object 44, however,is a joystick 112 which the user can preferably move in two degrees offreedom, similar to the joystick 28 shown in FIG. 1. Joystick 112 can besensed and force can be applied in both degrees of freedom by a computersystem and interface similar to computer 16 and interface 14 of FIG. 1.In the described embodiment, joystick 112 is coupled to cylindricalfastener 64 so that the user can move the joystick in the two degrees offreedom provided by gimbal mechanism 38 as described above. Linear axismember 40 is not typically included in the embodiment of FIG. 8, since ajoystick is not usually translated along an axis C. However, inalternate embodiments, joystick 112 can be coupled to linear axis member40 similarly to stylus 102 as shown in FIG. 7 to provide a third degreeof freedom. In yet other embodiments, linear axis member 40 can rotateabout axis C and transducer 70 can be coupled to apparatus 25′″ toprovide a fourth degree of freedom. Finally, in other embodiments, afloating gimbal mechanism as shown in FIG. 7, or a different mechanism,can be added to the joystick to allow a full six degrees of freedom.

Joystick 112 can be used in virtual reality simulations in which theuser can move the joystick to move a vehicle, point to objects, controla mechanism, etc. For example, a user can view a virtual environmentgenerated on a computer screen or in 3D goggles in which joystick 112controls an aircraft. The computer system tracks the position of thejoystick as the user moves it around with sensors and updates thevirtual reality display accordingly to make the aircraft move in theindicated direction, etc. The computer system also provides forcefeedback to the joystick, for example, when the aircraft is banking oraccelerating in a turn or in other situations where the user mayexperience forces on the joystick or find it more difficult to steer theaircraft.

FIG. 9 is a block diagram of a computer 16 and an interface circuit 120used in interface 14 to send and receive signals from mechanicalapparatus 25. Circuit 120 includes computer 16, interface card 120, DAC122, power amplifier circuit 124, digital sensors 128, and sensorinterface 130. Optionally included are analog sensors 132 instead of orin addition to digital sensors 128, and ADC 134. In this embodiment, theinterface 14 between computer 16 and mechanical apparatus 25 as shown inFIG. 1 can be considered functionally equivalent to the interfacecircuits enclosed within the dashed line in FIG. 14. Other types ofinterfaces 14 can also be used. For example, an electronic interface 14is described in U.S. patent application Ser. No. 08/092,974, filed Jul.16, 1993 and entitled “3-D Mechanical Mouse” assigned to the assignee ofthe present invention and incorporated herein by reference in itsentirety. The electronic interface described therein was designed forthe Immersion PROBE™ 3-D mechanical mouse and has six channelscorresponding to the six degrees of freedom of the Immersion PROBE.

Interface card 120 is preferably a card which can fit into an interfaceslot of computer 16. For example, if computer 16 is an IBM AT compatiblecomputer, interface card 14 can be implemented as an ISA or otherwell-known standard interface card which plugs into the motherboard ofthe computer and provides input and output ports connected to the maindata bus of the computer.

Digital to analog converter (DAC) 122 is coupled to interface card 120and receives a digital signal from computer 16. DAC 122 converts thedigital signal to analog voltages which are then sent to power amplifiercircuit 124. A DAC circuit suitable for use with the present inventionis well known to those skilled in the art; one example is shown in FIG.10. Power amplifier circuit 124 receives an analog low-power controlvoltage from DAC 122 and amplifies the voltage to control actuators 126.Power amplifier circuits 124 are also well known to those skilled in theart; one example is shown in FIG. 11. Actuators 126 are preferably DCservo motors incorporated into the transducers 66 a, 66 b, and 68, andany additional actuators, as described with reference to the embodimentsshown in FIGS. 3, 7, and 8 for providing force feedback to a usermanipulating object 44 coupled to mechanical apparatus 25.

Digital sensors 128 provide signals to computer 16 relating the positionof the user object 44 in 3D space. In the preferred embodimentsdescribed above, sensors 128 are relative optical encoders, which areelectro-optical devices that respond to a shaft's rotation by producingtwo phase-related signals. In the described embodiment, sensor interfacecircuit 130, which is preferably a single chip, receives the signalsfrom digital sensors 128 and converts the two signals from each sensorinto another pair of clock signals, which drive a bi-directional binarycounter. The output of the binary counter is received by computer 16 asa binary number representing the angular position of the encoded shaft.Such circuits, or equivalent circuits, are well known to those skilledin the art; for example, the Quadrature Chip from Hewlett Packard,California performs the functions described above.

Analog sensors 132 can be included instead of digital sensors 128 forall or some of the transducers of the present invention. For example, astrain gauge can be connected to stylus 130 of FIG. 7 to measure forces.Analog sensors 132 provide an analog signal representative of theposition of the user object in a particular degree of motion. Analog todigital converter (ADC) 134 converts the analog signal to a digitalsignal that is received and interpreted by computer 16, as is well knownto those skilled in the art.

FIG. 10 is a schematic view of a DAC circuit 122 of FIG. 9 suitable forconverting an input digital signal to an analog voltage that is outputto power amplifier circuit 124. In the described embodiment, circuit 122includes a parallel DAC 136, such as the DAC1220 manufactured byNational Semiconductor, which is designed to operate with an externalgeneric op amp 138. Op amp 138, for example, outputs a signal from zeroto −5 volts proportional to the binary number at its input. Op amp 140is an inverting summing amplifier that converts the output voltage to asymmetrical bipolar range. Op amp 140 produces an output signal between−2.5 V and +2.5 V by inverting the output of op amp 138 and subtracting2.5 volts from that output; this output signal is suitable for poweramplification in amplification circuit 124. As an example, R1=200 kΩ andR2=400 kΩ. Of course, circuit 122 is intended as one example of manypossible circuits that can be used to convert a digital signal to adesired analog signal.

FIG. 11 is a schematic view of a power amplifier circuit 124 suitablefor use in the interface circuit 14 shown in FIG. 9. Power amplifiercircuit receives a low power control voltage from DAC circuit 122 tocontrol high-power, current-controlled servo motor 126. The inputcontrol voltage controls a transconductance stage composed of amplifier142 and several resistors. The transconductance stage produces an outputcurrent proportional to the input voltage to drive motor 126 whiledrawing very little current from the input voltage source. The secondamplifier stage, including amplifier 144, resistors, and a capacitor C,provides additional current capacity by enhancing the voltage swing ofthe second terminal 147 of motor 146. As example values for circuit 124,R=10 kΩ, R2=500 Ω, R3=9.75 kΩ, and R4=1 Ω. Of course, circuit 124 isintended as one example of many possible circuits that can be used toamplify voltages to drive actuators 126.

FIG. 12 a is a schematic diagram of a transducer system 200 suitable foruse with the present invention. Transducer system 200 is ideally suitedfor an interface system in which passive actuators, instead of activeactuators, are implemented. As shown in FIG. 12 a, transducer system 200is applied to a mechanism having one degree of freedom, as shown byarrows 201. Embodiments in which system 200 is applied to systems havingadditional degrees of freedom are described subsequently. Transducersystem 200 includes an actuator 202, an actuator shaft 204, anon-rigidly attached coupling 206, a coupling shaft 208, a sensor 210,and an object 44.

Actuator 202 transmits a force to object 44 and is preferably grounded,as shown by symbol 203. Actuator 202 is rigidly coupled to an actuatorshaft 204 which extends from actuator 202 to non-rigidly attachedcoupling 206. Actuator 202 provides rotational forces, shown by arrows212, on actuator shaft 204. In the preferred embodiment, actuator 202 isa passive actuator which can apply a resistive or frictional force(i.e., drag) to shaft 204 in the directions of arrow 212 but cannotprovide an active force to shaft 204 (i.e., actuator 202 cannot causeshaft 204 to rotate). Thus, an external rotational force, such as aforce generated by a user, is applied to shaft 204, and passive actuator202 provides resistive forces to that external rotational force.Preferred passive actuators include rotary magnetic brakes, and, inparticular, magnetic particle brakes, which are low cost andpower-efficient devices. Suitable magnetic particle brakes can beobtained from Force Limited, Inc. of Santa Monica, Calif.

Passive actuators can provide realistic force feedback to a useroperating an interface apparatus in a simulated environment. Passiveactuators impose a resistance to the motion of an object 44 manipulatedby the user. Thus, a user who manipulates an interface having passiveactuators will feel forces only when he or she actually moves an objectof the interface.

Passive actuators 202 provide several advantages when compared to activeactuators. A substantially lower current is required to drive passiveactuators than active actuators. This allows a less expensive powersupply to drive a passive actuator system, and also allows a forcefeedback mechanism to be smaller and more lightweight due to the smallerpower supply. In addition, passive actuators require substantiallyslower control signals to operate effectively in a simulationenvironment than do active actuators such as motors. This is significantif the controller of an interface mechanism is a computer system thatincludes only a standard, low-speed input/output port, such as a serialport. Serial ports are quite common to personal computers but do notcommunicate quickly enough to perform real-time, stable control of mostactive actuators. When using a controller with slower control signals,passive actuators can provide stable force feedback to the user. Anotheradvantage of passive actuators, as explained above, is that passiveactuators do not generate forces on the interface and the user and arethus more safe for the user.

Coupling 206 is coupled to actuator shaft 204. Actuator 202, actuatorshaft 204, and coupling 206 can be considered to be an “actuatorassembly” or, in a passive actuating system, a “braking mechanism.”Coupling 206 is preferably not rigidly coupled to actuator shaft 204 andthus allows an amount (magnitude) of “play” between actuator shaft 204and coupling 206. The term “play,” as used herein, refers to an amountof free movement or “looseness” between a transducer and the objecttransduced, so that, for instance, the object can be moved a shortdistance by externally-applied forces without being affected by forcesapplied to the object by an actuator. In the preferred embodiment, theuser can move the object a short distance without fighting the draginduced by a passive actuator such as a brake. For example, actuator 202can apply a resistive or frictional force to actuator shaft 204 so thatactuator shaft 204 is locked in place, even when force is applied to theshaft. Coupling 206, however, can still be freely rotated by anadditional distance in either rotational direction due to the playbetween coupling 206 and shaft 204. This play is intentional forpurposes that will be described below, and is thus referred to as a“desired” amount of play. Once coupling 206 is rotated to the limit ofthe allowed play, it either forces shaft 204 to rotate with it further;or, if actuator 202 is holding (i.e., locking) shaft 204, the couplingcannot be further rotated in that rotational direction. The amount ofdesired play between actuator 202 and object 44 greatly depends on theresolution of the sensor 210 being used, and is described in greaterdetail below. Examples of types of play include rotary backlash, such asoccurs in gear systems as described in the above embodiments, andcompliance or torsion flex, which can occur with flexible, rotationaland non-rotational members. Embodiments including these forms of playare described in greater detail below with reference to FIGS. 13 and 16,respectively.

Coupling shaft 208 is rigidly coupled to coupling 206 and extends tosensor 210. Sensor 210 is preferably rigidly coupled to coupling shaft208 so as to detect rotational movement of shaft 208 and object 44 aboutaxis H. Sensor 210 preferably provides a electrical signal indicatingthe rotational position of shaft 208 and is preferably grounded asindicated by symbol 211. In the described embodiment, sensor 210 is adigital optical encoder, similar to the encoders described in the aboveembodiments of FIGS. 1–11. In alternate embodiments, sensor 210 can beseparated from object 44, coupling shaft 208, and coupling 206. Forexample, a sensor having an emitter and detector of electromagneticenergy might be disconnected from the rest of transducer system 200 yetbe able to detect the rotational position of object 44 using a beam ofelectromagnetic energy, such as infrared light. Similarly, a magneticsensor could detect the position of object 44 while being uncoupled toshaft 208 or object 44. The operation of such sensors are well-known tothose skilled in the art.

Sensor 210 has a sensing resolution, which is the smallest change inrotational position of coupling shaft 208 that the sensor can detect.For example, an optical encoder of the described embodiment may be ableto detect on the order of about 3600 equally-spaced “pulses” (describedbelow) per revolution of shaft 208, which is about 10 detected pulsesper degree of rotational movement. Thus, the sensing resolution of thissensor is about 1/10 degree in this example. Since it is desired todetect the desired play between actuator 202 and object 44 (as describedbelow), this desired play should not be less than the sensing resolutionof sensor 210 (e.g., 1/10 degree). Preferably, the desired play betweenactuator and object would be at least ⅕ degree in this example, sincethe encoder could then detect two pulses of movement, which wouldprovide a more reliable measurement and allow the direction of themovement to be more easily determined.

Sensor 210 should also be as rigidly coupled to shaft 208 as possible sothat the sensor can detect the desired play of shaft 208 and object 44.Any play between sensor 210 and object 44 should be minimized so thatsuch play does not adversely affect the sensor's measurements.Typically, any inherent play between sensor 210 and object 44 should beless than the sensing resolution of the sensor, and preferably at leastan order of magnitude less than the sensing resolution. Thus, in theexample above, the play between sensor and object should be less than1/10 degree and preferably less than 1/100 degree. Use of steel or otherrigid materials for shaft 208 and other components, which is preferred,can allow the play between sensor 210 and object 44 to be madepractically negligible for purposes of the present invention. Asreferred to herein, a sensor that is “rigidly” coupled to a member has aplay less than the sensing resolution of the sensor (preferably anegligible amount). The play between actuator 202 and object 44 isdescribed in greater detail below. A suitable encoder to be used forsensor 210 is the “Softpot” from U.S. Digital of Vacouver, Wash.

Object 44 is rigidly coupled to coupling shaft 208. Object 44 can take avariety of forms, as described in previous embodiments, and can bedirectly coupled to coupling shaft 208 or can be coupled through otherintermediate members to shaft 208. In FIG. 12 a, object 44 is coupled toshaft 208 between coupling 206 and sensor 210. Thus, as object 44 isrotated about axis H, shaft 208 is also rotated about axis H and sensor210 detects the magnitude and direction of the rotation of object 44.Alternatively, object 44 can be coupled directly to coupling 206.Coupling 206 and/or shafts 204 and 208 can be considered a “playmechanism” for providing the desired play between actuator 202 andobject 44. Certain suitable objects 44 include a joystick, medicalinstrument (catheter, laparoscope, etc.), a steering wheel (e.g. havingone degree of freedom), a pool cue, etc.

As stated above, transducer system 200 is ideally suited for mechanicalsystems that include low-cost elements such as passive actuators. If acontrolling computer system, such as computer system 16, is to provideaccurate force feedback to an object being held and moved by a user, thecomputer system should be able to detect the direction that the user ismoving the object even when the passive actuators are being applied tothe object at maximum force to lock the object in place. However, thiscan be difficult when using passive actuators, because passive rotaryactuators provide a resistive force or friction to motion in bothrotational directions about an axis. Thus, when force from an actuatorprevents movement of an object in one direction, it also preventsmovement in the opposite direction. This typically does not allow thecomputer to sense movement of the object in the opposite direction,unless the user provides a greater force than the actuator's resistiveforce and overcomes the actuator's force (i.e., overpowers theactuator).

For example, object 44 is a one-degree-of-freedom joystick used formoving a video cursor that moves in the direction indicated by thejoystick on a video screen. The user moves the cursor into a virtual(computer generated) “wall”, which blocks the motion of the cursor inone direction. The controlling computer system also applies forcefeedback to the joystick by activating passive magnetic particle brakesto prevent the user from moving the joystick in the direction of thewall, thus simulating the surface of the wall. If sensor 210 is rigidlycoupled to actuator shaft 204, a problem occurs if the user wishes tomove the joystick in the opposite direction to the wall. Since thebrakes have locked the joystick in both directions, the computer cannotdetect when the user switches the joystick's direction unless the useroverpowers the passive brakes. Thus, to the user, the cursor feels likeit is “stuck” to the wall.

Applicant's introduced (“desired”) play between object 44 and actuator202 solves this problem effectively and inexpensively. The play allowsthe joystick or other connected object to be moved slightly in theopposite direction even when the brakes are applied with maximumfriction to the joystick. The sensor, being rigidly attached to thejoystick, is not locked by the actuator and detects the change indirection. The sensor relays the movement to the computer, whichdeactivates the brakes to allow the joystick to be moved freely in theopposite direction. If the user should move the cursor into the wallagain, the brakes would be similarly activated. A method for controllingactuator 202 in such a virtual reality environment is described withreference to FIG. 22.

Active actuators, such as the DC motors described in the aboveembodiments of FIGS. 3–8 or other types of motors, can also be used withtransducer system 200. Many active actuators, however, can apply forcein one selected direction in a degree of freedom, so that thedeliberately-introduced play would not be necessary when using suchactuators.

In alternate embodiments, linear play can be implemented instead ofrotary play. The preferred embodiments of FIGS. 12 a and 12 b (describedbelow) implement play among rotational components, such as a rotaryactuator and sensor. However, compliance or backlash can also beimplemented between linearly moving (i.e., translatable) components. Forexample, a small amount of space can be provided between interlockedtranslatable components to provide play in accordance with the presentinvention. An actuator and sensor for transducing linear movement, whichare well-known to those skilled in the art, can be used in such anembodiment.

Other devices or mechanisms besides the use of play can be used in otherembodiments to detect the direction of motion of object 44 while passiveactuators are holding the object in place. For example, force sensorscan be coupled to the object to measure the force applied to the objectby the user along desired degrees of freedom. A force sensor can detectif a user is applying a force, for example, towards the virtual wall oraway from the virtual wall, and the computer can activate or deactivatethe passive actuators accordingly. Deliberately-introduced play betweenobject and actuator is thus not required in such an embodiment. However,such force sensors can be expensive and bulky, adding to the cost andsize of the interface mechanism.

FIG. 12 b is a schematic diagram of an alternate transducer system 200′similar to transducer system 200 shown in FIG. 12 a. In this embodiment,sensor 210 is positioned between coupling 206 and object 44 on couplingshaft 208. Shaft 208 extends through sensor 210 and can be rigidlycoupled to object 44 at the end of the shaft. Transducer system 200′functions substantially the same as transducer system 200 shown in FIG.12 a.

FIG. 13 is a schematic view of a preferred embodiment of transducersystem 200 for a mechanism providing one degree of freedom that usesrotary backlash to provide play between actuator 202 and coupling 216.Keyed actuator shaft 214 is rigidly coupled to actuator 202 and mateswith keyed coupling 216. The cross-sectional diameter of keyed actuatorshaft 214 is preferably smaller than bore 218 of coupling 216, toprovide the desired backlash, as described in greater detail withreference to FIG. 14 a. Coupling shaft 208, sensor 210, and object 44are substantially similar to these components as described withreference to FIG. 12 a. In alternate embodiments, backlash can beprovided between actuator 202 and coupling 206 using differentcomponents, such as gears, pulleys, etc.

FIG. 14 a is a side sectional view of keyed actuator shaft 214 andcoupling 216 taken along line 14 a—14 a of FIG. 13. Keyed shaft 214extends into keyed bore 218 of coupling 216. In FIG. 14 a, gap 220 isprovided around the entire perimeter of shaft 214. In alternateembodiments, gap 220 can be provided only between the sides of the keyedportion 222 of shaft 214, as described with reference to FIG. 15.

FIG. 14 b is a side sectional view of keyed actuator shaft 214 andcoupling 216 taken along line 14 b—14 b of FIG. 14 a. Keyed shaft 214 isshown partially extending into coupling 216. As shown in FIG. 14 a, asmall gap 220 is preferably provided between coupling 216 and shaft 214.When shaft 214 is rotated, coupling 216 is also rotated after the keyedportion of shaft 214 engages the keyed portion of bore 218, as describedwith reference to FIG. 15. Coupling shaft 208 rotates as coupling 216rotates, since it is rigidly attached.

FIG. 15 is a detailed view of FIG. 14 a showing the keyed portions ofshaft 214 and bore 218. Extended keyed portion 222 of shaft 218protrudes into receiving keyed portion 224 of bore 218. In alternateembodiments, an extended keyed portion of coupling 216 can protrude intoa receiving keyed portion of shaft 214. Gap 220 has a width d whichdetermines how much desired backlash (play) is introduced betweenactuator 202 and object 44. (Additional unintentional backlash or otherinherent play can exist between the components of the system due tocompliance of the shafts, etc.) In the described embodiment, in whichsensor 210 has a sensing resolution of about 1/10 degree, d ispreferably about 1/1000 inch. Note that the distance d can widely varyin alternate embodiments. The chosen distance d is preferably made smallenough to prevent the user from feeling the backlash that exists in thesystem when handling object 44 and yet is large enough for the sensor todetect the play (i.e., greater than the sensing resolution of sensor210) to allow the sensor to inform the computer the direction that theuser is moving object 44. Thus, the distance d is highly dependent onthe sensing resolution of sensor 210. For example, if a sensingresolution of 1/100 degree is available, the distance d can be muchsmaller. The amount of backlash that a user can typically feel candepend on the size and shape of object 44; however, the backlashdescribed above is not detectable by a user for the majority of possibleobjects. In other embodiments, it may be desirable to allow the user tofeel the backlash or other play in the system, and thus a greaterdistance d can be implemented.

In the preferred embodiment, distance d allows rotational movement ofcoupling 216 at least equal to the sensing resolution of sensor 210 ineither direction, thus allowing a total backlash of distance of 2dbetween surfaces 228 and 232 of coupling 216. Alternatively, a totalbacklash of distance d between surfaces 228 and 232 can be implemented(half of the shown distance). In such an embodiment, however, sensor 210would only be able to detect movement from one limit of the backlash tothe other limit, and, for example, movement of coupling 216 from acenter position (as shown in FIG. 15) would not be detected.

In the described embodiment, digital encoder sensors 210 are used, inwhich rotational movement is detected using a number of divisions on awheel that are rotated past fixed sensors, as is well known to thoseskilled in the art. Each division causes a “pulse,” and the pulses arecounted to determine the amount (magnitude) of movement. Distance d canbe made as large or larger than the sensing resolution of the encoder sothat the magnitude and direction of the movement within gap 220 can bedetected. Alternatively, the resolution of the sensor can be made greatenough (i.e., the distance between divisions should be small enough, ina digital encoder) to detect movement within gap 220. For example, twoor more pulses should be able to be detected within distance d todetermine the direction of movement of object 44 and coupling 216 usinga digital encoder or the like.

When coupling 216 is initially rotated from the position shown in FIG.15 in a direction indicated by arrow 226 (counterclockwise in FIG. 14 a)as the user moves object 44, the coupling freely rotates. Coupling 216can no longer be rotated when the inner surface 228 of keyed portion 224engages surface 230 of keyed portion 222. Thereafter, external force(such as from the user) in the same direction will cause either bothcoupling 216 and shaft 214 to rotate in the same direction, or theexternal force will be prevented if actuator 202 is locking shaft 214 inplace with high resistive force to prevent any rotational movement ofshaft 214.

If the user suddenly moves object 44 in the opposite rotationaldirection after surface 228 has engaged surface 230, coupling 216 canagain be rotated freely within gap 220 until surface 232 of bore 218engages surface 234 of shaft 214, at which point both shaft and couplingare rotated (or no rotation is allowed, as described above). It is themagnitude and direction of the movement between the engagement of thesurfaces of keyed portions 222 and 224 which can be detected by sensor210, since sensor 210 is rigidly coupled to coupling 216. Since sensor210 can relay to the controlling computer the direction which coupling216 (and thus object 44) is moving, the computer can deactivate oractivate actuator 202 accordingly. Even if object 44 is held in place byactuator 202, as when moving into a virtual “wall”, the computer candetect the backlash movement of object 44 if the user changes thedirection of the object and can release the brakes accordingly. Itshould be noted that computer 16 should preferably deactivate (release)the passive actuator before surface 232 engages surface 234 so that theuser will not feel any resistance to movement in the opposite direction.

FIG. 16 is a schematic diagram of an alternate embodiment of transducersystem 200 in which the desired play between actuator 202 and object 44is provided by a flexible (i.e. compliant) coupling instead of the keyedshaft system with backlash shown in FIG. 13. A flexible coupling cantake many possible forms, as is well known to those skilled in the art.The flexible coupling allows coupling shaft 208 to rotate independentlyof actuator shaft 204 for a small distance, then forces actuator shaft204 to rotate in the same direction as coupling shaft 208, as describedwith reference to FIGS. 13–15. In FIG. 16, actuator 202, coupling shaft208, sensor 210 and object 44 are similar the equivalent components asdiscussed above with reference to FIG. 12 a. A flexible coupling 236 hastwo ends 219 and lengthwise portions 221 that provide torsion flexbetween the ends 219. Flexible coupling 236 thus allows an amount oftorsion flex (play) about axis H between coupling shaft 208 and actuatorshaft 215. When actuator shaft 215 is locked in place by actuator 202,coupling shaft 208 is rotated, and coupling 236 has been flexed to itslimit in one rotational direction, shaft 208 will be prevented fromrotating in the same direction and the user will be prevented frommoving object 44 further in that direction. If object 44 and couplingshaft 208 were caused to suddenly rotate in the opposite direction,coupling 236 would flex freely in that direction and this movement wouldbe detected by sensor 210, allowing the computer to change resistiveforce applied by actuator 202 accordingly. When coupling 236 reachedmaximum flexibility in the other direction, the mechanism would performsimilarly and the user would feel forces (if any) from actuator 202.Compliance or flex can also be provided with spring members and thelike.

Similar to the backlash system described in FIGS. 13-15, the amount ofplay provided by flexible coupling 236 between actuator 202 and object44 is equal to or greater than the sensing resolution of sensor 210. Atypical flexible coupling has an inherent amount of stiffness so that aforce must be applied to overcome the stiffness. Preferably, flexiblecoupling 236 has a low stiffness and flexes with a small amount of forcewith respect to the maximum drag output by the passive actuator 202.Flexible coupling 236 also preferably has a small amount of flex toprovide a small amount of desired play; as above, the desired play whenusing flexible coupling 236 should be the minimum amount of play thatthe sensor 210 can reliably detect.

FIG. 17 is a schematic diagram of an embodiment of a mechanicalapparatus 240 using transducer system 200. Similar to apparatus 25 asdescribed with reference to FIG. 2, apparatus 200 includes a gimbalmechanism 38 and a linear axis member 40. A user object 44 is preferablycoupled to linear axis member 40. Gimbal mechanism 38 provides tworevolute degrees of freedom as shown by arrows 242 and 244. Linear axismember 40 provides a third linear degree of freedom as shown by arrows246. These components function as described with reference to FIG. 2.Coupled to each extension member 48 a and 48 b is a transducer system238 (equivalent to transducer system 200) and 239 (equivalent totransducer system 200′), respectively. It should be noted that the twodifferent embodiments of transducer system 200 and 200′ are shown on onemechanical apparatus 240 for illustrative purposes. Typically, only oneembodiment of system 200 or 200′ is used for both ground members 48 aand 48 b.

Transducer system 238 is similar to the system shown in FIG. 12 awherein object 44 is positioned between coupling 206 and sensor 210.Transducer system 238 includes actuator 202 a, which is grounded andcoupled to coupling 206 a (ground 56 is schematically shown coupled toground member 46, similar to FIG. 2). Coupling 206 a is coupled toextension member 48 a which ultimately connects to object 44 andprovides a revolute degree of freedom about axis A. Sensor 210 a isrigidly coupled to extension member 48 a at the first bend 237 in theextension member. Sensor 210 a is also grounded by either coupling it toground member 46 or separately to ground 56. Sensor 210 a thus detectsall rotational movement of extension member 48 a and object 44 aboutaxis A. However, coupling 206 a provides a desired amount of playbetween actuator 202 a and extension member 48 a as described above.Alternatively, sensor 210 a can be rigidly coupled to extension member48 a at other positions or bends in member 48 a, or even on centralmember 50 b, as long as the rotation of object 44 about axis A isdetected.

Transducer system 239 is similar to the transducer system shown in FIG.12 b in which sensor 210 is positioned between coupling 206 and object44. Actuator 202 b is grounded and is non-rigidly coupled (i.e., coupledwith the desired play as described above) to coupling 206 b. Coupling206 b is rigidly coupled, in turn, to sensor 210 b, which separatelygrounded and rigidly coupled to ground member 46 (leaving coupling 206 bungrounded). Extension member 48 b is also rigidly coupled to coupling206 b by a shaft extending through sensor 210 b (not shown). Sensor 210b thus detects all rotational movement of extension member 48 b andobject 44 about axis B. Coupling 206 b provides a desired amount of playbetween actuator 202 b and extension member 48 b for reasons describedabove.

Rotational resistance or impedance can thus be applied to either or bothof extension members 48 a and 48 b and object 44 using actuators 202 aand 202 b. Couplings 206 a and 206 b allow computer 16 to sense themovement of object 44 about either axis A or B when actuators arelocking the movement of object 44. A similar transducer system to system238 or 239 can also be provided for linear axis member 40 to sensemovement in and provide force feedback to the third degree of freedomalong axis C. Such a system can be implemented similarly to thetransducers shown in FIG. 6 and as described below.

FIG. 18 is a perspective view of a preferred embodiment of mechanicalapparatus 240 shown in FIG. 17. Apparatus 240 is similar to theembodiment of apparatus 25′″ shown in FIG. 8 above, in which object 44is implemented as a joystick 112 movable in two degrees of freedom aboutaxes A and B. For illustrative purposes, apparatus 240 is shown with twoembodiments of transducer system 200 and 200′. System 239 is shownsimilarly as in FIG. 17 and includes actuator 202 b, coupling 206 b, andsensor 210 b, with the appropriate shafts connecting these componentsnot shown. Actuator 202 b is grounded by, for example, a support member241. The coupling shaft 208 extending from sensor 210 b is preferablycoupled to capstan pulley 76 of capstan drive mechanism 58. When object44 is moved about axis A, extension member 48 b is also moved, whichcauses capstan member 59 (which is rigidly attached to member 48 b) torotate. This movement causes pulley 76 to rotate and thus transmits themotion to the transducer system 239. As described above with referenceto FIG. 5, the capstan mechanism allows movement of object 44 withoutsubstantial backlash. This allows the introduced, controlled backlash ofcoupling 206 to be the only backlash in the system. In addition, asdescribed previously, the capstan drive mechanism provides a mechanicaladvantage for the movement of object 44. Sensor 210 b can thus detectrotation at a higher resolution and actuator 202 b can provide greaterforces to object 44. This can be useful when, for example, a user canoverpower the resistive forces output by actuator 202 b; capstanmechanism 58 allows greater forces to be output from an actuator thatare more difficult for the user to overcome. A different type of gearingsystem can also be used to provide such mechanical advantage, such as apulley system. Transducer system 239 or 238 can also be directlyconnected to ground member 46 and extension member 48 a or 48 b, asshown in FIG. 17. For example, transducer system 239 can be directlycoupled to vertical support 62 and capstan member 59 on axis A. However,in such a configuration, the described benefits of the capstan drivemechanism would not be gained.

Transducer system 238 is shown coupled to the other extension member 48a similarly as in FIG. 17. In this configuration, actuator 202 a andcoupling 206 a are positioned on one side of vertical support member 62.Coupling shaft 208 preferably extends through vertical support member 62and pulley 76 and is coupled to sensor 210 a, which is grounded.Transducer system 238 gains the advantages of the capstan drivemechanism as described above. Alternatively, sensor 210 b can be coupledto capstan member and vertical support 62 at axis B; however, the sensorwould gain no mechanical advantage from the capstan drive mechanism 58at this location. Actuator 202 a and sensor 210 b are preferablygrounded by, for example, support members 243.

Transducer systems 238 and 239 can also be used with other apparatusesas shown in the embodiments of FIGS. 3 and 7. For example, a thirdlinear degree of freedom and a fourth rotational degree of freedom canbe added as shown in FIG. 3. Transducer systems 238 or 239 can be usedto sense movement in and provide force feedback to those third andfourth degrees of freedom. Similarly, transducer system 238 or 239 canbe applied to the fifth and sixth degrees of freedom as shown anddescribed with reference to FIG. 7.

FIG. 19 is a perspective view of alternate interface apparatus 250suitable for use with transducer system 200. Mechanism 250 includes aslotted yoke configuration for use with joystick controllers that iswell-known to those skilled in the art. Apparatus 250 includes slottedyoke 252 a, slotted yoke 252 b, sensors 254 a and 254 b, bearings 255 a,and 255 b, actuators 256 a and 256 b, couplings 258 a and 258 b, andjoystick 44. Slotted yoke 252 a is rigidly coupled to shaft 259 a thatextends through and is rigidly coupled to sensor 254 a at one end of theyoke. Slotted yoke 252 a is similarly coupled to shaft 259 c and bearing255 a at the other end of the yoke. Slotted yoke 252 a is rotatableabout axis L and this movement is detected by sensor 254 a. Coupling 254a is rigidly coupled to shaft 259 a and is coupled to actuator 256 suchthat a desired amount of play is allowed between actuator 265 and shaft259 a. This arrangement permits the play between object 44 and theactuator as described in the above embodiments. Actuator 256 a ispreferably a passive actuator such as magnetic particle brakes. Inalternate embodiments, actuator 256 a and coupling 258 a can be insteadcoupled to shaft 259 c after bearing 255 a. In yet other embodiments,bearing 255 a and be implemented as another sensor like sensor 254 a.

Similarly, slotted yoke 252 b is rigidly coupled to shaft 259 b andsensor 254 b at one end and shaft 259 d and bearing 255 b at the otherend. Yoke 252 b can rotated about axis M and this movement can bedetected by sensor 254 b. A coupling 258 b is rigidly coupled to shaft259 b and an actuator 256 b is coupled to coupling 258 b such that adesired amount of play is allowed between shaft 259 b and actuator 256b, similar to actuator 256 a described above.

Object 44 is a joystick 112 that is pivotally attached to ground surface260 at one end 262 so that the other end 264 typically can move in four90-degree directions above surface 260 (and additional directions inother embodiments). Joystick 112 extends through slots 266 and 268 inyokes 252 a and 252 b, respectively. Thus, as joystick 112 is moved inany direction, yokes 252 a and 252 b follow the joystick and rotateabout axes L and M. Sensors 254 a–d detect this rotation and can thustrack the motion of joystick 112. The addition of actuators 256 a and256 b allows the user to experience force feedback when handlingjoystick 44. The couplings 258 a and 258 b provide an amount of play, asdescribed above, to allow a controlling system to detect a change indirection of joystick 112, even if joystick 112 is held in place byactuators 256 a and 256 b. Note that the slotted yoke configurationtypically introduces some inherent play (such as compliance or backlash)to the mechanical system. Couplings 259 a and 259 b can be added toprovide an additional amount of play, if desired. Similarly, otherinterface apparatuses that typically provide an amount of inherent playcan be used such that the inherent play is measured by sensor 210 and nocoupling 206 is required. Also, other types of objects 44 can be used inplace of joystick 112, or additional objects can be coupled to joystick112.

In alternate embodiments, actuators and couplings can be coupled toshafts 259 c and 259 d to provide additional force to joystick 112.Actuator 256 a and an actuator coupled to shaft 259 c can be controlledsimultaneously by a computer or other electrical system to apply orrelease force from bail 252 a. Similarly, actuator 256 b and an actuatorcoupled to shaft 259 d can be controlled simultaneously.

FIG. 20 a is a block diagram 270 of an electronic interface suitable foruse with the transducer system 200. The electronic components in diagram270 are preferably used with passive actuators and optical encodersensors. The interface of diagram 270, however, can also be used withother embodiments of interface apparatus 25 as described above.

Host computer 16 can be computer system 16 as described above withreference to FIGS. 1 and 9 and is preferably implements a simulation orsimilar virtual environment which a user is experiencing and movingobject 44 in response to, as is well known to those skilled in the art.Host computer 16 includes interface electronics 272. In the describedembodiment, interface electronics include a serial port, such as anRS-232 interface, which is a standard interface included on mostcommercially available computers. This interface is different than theinterface card and electronics shown with respect to FIG. 9 above, whichallows faster control signal transmission and is thus more suitable forcontrolling active actuators than the presently described interfaceelectronics.

Microprocessor 274 can be used to control input and output signals thatare provided to and from interface 272. For example, microprocessor canbe provided with instructions to wait for commands or requests fromcomputer host 16, decode the command or request, and handle input andoutput signals according to the command or request. If computer 16 sendsa command to control actuators, microprocessor 274 can decode thecommand and output signals to the actuator representing the force to beapplied by the actuator, and can send an acknowledgment to computer 16that such output was sent. If computer 16 sends a request for sensoryinput, microprocessor 274 can read position data from the sensors andsend this data to the computer 16. Suitable microprocessors for use asmicroprocessor 274 include the MC68HC711E9 by Motorola and the PIC16C74by Microchip. The operation of microprocessor 274 in other embodimentsis described below.

Digital-to-analog converter (DAC) 276 is electrically coupled tomicroprocessor 274 and receives digital signals representing a forcevalue from the microprocessor. DAC 276 converts the digital signal toanalog signal as is well known to those skilled in the art. A suitableDAC is the MAX530ACNG manufactured by Maxim. Power amplifier 278receives the analog signal from DAC 276 and converts the signal into anappropriate brake control signal for actuator 202. For example, an LM324and TIP31 can be used as power amplifier 278. Actuator 202, which ispreferably a magnetic particle brake by Force Limited, Inc., receivesthe brake signal and provides appropriate resistive forces to impede themotion of object 44 caused by the user. Preferably, a separate DAC andpower amplifier is used for each actuator 202 implemented in theinterface apparatus so the computer 16 can control each actuatorseparately for each provided degree of motion.

The sensors are used to produce a locative signal or “sensor data” whichis responsive to and corresponds with the position of the user object atany point in time during its normal operation. Sensor 210 (or 128) ispreferably a digital optical encoder which operates as described above;for example, a suitable encoder is the “Softpot” from U.S. Digital ofVacouver, Wash. The sensor detects the position of object 44 andprovides a digital position signal to microprocessor 274. Optionally,decoding electronics 280 can be provided between sensors 210 or 128 andmicroprocessor 274, which convert the sensor signal into an input signalsuitable to be interpreted by computer 16, as shown in FIG. 20 b.

Embodiment 270 is a single-chip embodiment, where the sensors 210 or128, along with any peripherals 212 such as buttons, etc., can sendtheir signals directly to microprocessor 274 or similar floating-pointprocessor via transmission line 283 or another form of transmission,e.g., radio signals. The microprocessor 274 is controlled by softwarepreferably stored in a local memory device 282 such as a digital ROM(Read-Only Memory) coupled to microprocessor 274.

FIG. 20 b shows an alternative, multi-chip embodiment 286 which can beused to lessen the demands on microprocessor 274. The inputs of thesensors 210 or 128 can be sent indirectly to the microprocessor by wayof dedicated angle-determining chips 280 and/or other decodingelectronics, which pre-process the angle sensors' signals before sendingthem via bus 290 to the microprocessor 274 which can combine thesesignals with those from peripherals 289, such as a button, switch, footpedal, etc. (the configuration of FIG. 20 a may also have peripherals289 coupled to microprocessor 274). A data bus, such as an 8-bit databus, plus chip-enable lines allow any of the angle determining chips tocommunicate with the microprocessor. Moreover, reporting the status ofperipherals includes reading the appropriate switch or button andplacing its status in the output sequence array. Some examples ofspecific electronic hardware usable for sensor pre-processing includequadrature counters, which are common dedicated chips that continuallyread the output of an optical incremental encoder and determine an angletherefrom, Gray decoders, filters, and ROM look-up tables. For example,quadrature decoder LS7166 is suitable to decode quadrature signals fromsensor 210 or 128. The position value signals are interpreted bycomputer 16 which updates an implemented virtual reality environment andcontrols actuator 202 as appropriate in response to the position valuesignals. Other interface mechanisms other than decoding electronics 288can also be used to provide an appropriate signal to microprocessor 274.In alternate embodiments, an analog sensor 210 or 128 can be used toprovide an analog signal to an analog-to-digital converter (ADC), whichcan provide a digital position signal to computer 16. The resolution ofthe detected motion of object 44 would then be limited by the resolutionof the ADC. However, noise can sometimes mask small movements of object44 from an analog sensor 210, which can potentially mask the play thatis important to the present embodiment of the invention.

The single-chip configuration of FIG. 20 a is most applicable where thesensors 210 are absolute sensors, which have output signals directlyindicating angles or position without any further processing, therebyrequiring less computation for the microprocessor 274 and thus little ifany pre-processing. The multi-chip configuration of FIG. 20 b is mostapplicable if the sensors 210 are relative sensors, which indicate onlythe change in an angle or position and which require further processingfor complete determination of the angle or position.

In either configuration, if the microprocessor 274 is fast enough, itwill compute the position and/or orientation (or motion, if desired) ofthe user object 44 on board the interface device(or locally coupled tothe interface device) and send this final data through any standardcommunications interface such as an RS-232 serial interface 272 on tothe host computer system 16 and to computer display apparatus 20 throughtransmission line 285 or another form of transmission. If themicroprocessor 274 is not fast enough, then the angles will be sent tothe host computer 16 which will perform these calculations on its own.

In addition to the single-chip and multi-chip configurations, avariation may consist of a single microprocessor which reads theperipherals, obtains the angles, possibly computes coordinates andorientation of the user object 44, and supervises communication with thehost computer 16. Another variation may consist of dedicated subcircuitsand specialized or off-the-shelf chips which read the peripherals,monitor the sensors 210, determine the joint angles or positions, andhandle communications with the host computer 16, all without software ora microprocessor 274. The term “joint” as used herein is intended tomean the connection mechanism between individual linkage components. Infact, two separate moveable members can be joined; such together forminga joint.

Software is preferably only included in the two microprocessor-basedconfigurations shown in FIGS. 20 a and 20 b. The more dedicated hardwarea given configuration includes, the less software it requires. Oneimplementation of software includes a main loop (FIG. 21) and an outputinterrupt (FIGS. 22 a and 22 b).

A clicker button or the like (not shown) can be included in the deviceto input signals to the microprocessor 274 or host computer 16. Thebutton can be connected to a switch which, when in the on state, sends asignal to the computer giving it a command. The interface apparatus mayalso include a remote clicker unit. Two ways for implementing the remoteclicker unit include an alternate hand-clicker or a foot pedal. Digitalbuttons which are connected to switches on remote attached peripheralssuch as a hand-held clicker unit or foot pedal can generate additionaldigital input to microprocessor 274 and/or host computer 16.

Referring to FIG. 21, the main command loop 300 responds to the hostcomputer 16 and runs repeatedly in an endless cycle on microprocessor274. With each cycle, incoming host commands from the host computer aremonitored 302 and decoded 304, and the corresponding command routinesfor reporting angles or positions are then executed 306. Two possiblecommand routines are shown in FIGS. 22 a and 22 b. When a commandroutine terminates, the main command loop resumes at 308 to initiateoutput communication. Available host commands may instruct themicroprocessor to perform, for example, the following tasks: reportingthe value of any single angle from any sensor to the host computer,reporting the angles of all angles at one time from all sensors to thehost computer, reporting the values of all angles repeatedly to the hostcomputer until a command is given to cease the aforementioned repeatedreporting, reporting the status of peripheral buttons or other inputdevices, and setting communications parameters. If the sensor datarequires preprocessing, the commands can also instruct resetting theangle value of any single angle or otherwise modifying preprocessingparameters in other applicable ways. Resetting pre-processed anglevalues or preprocessing parameters does not require output data from thesensors. The microprocessor 274 simply sends appropriate control signalsto the preprocessing hardware 288. If the microprocessor is fast enoughto compute stylus coordinates and orientation, the host commands canalso instruct the microprocessor to perform, for example, the followingtasks: reporting the user object coordinates once, reporting the userobject coordinates repeatedly until a host command is given to ceasereporting, ceasing aforementioned repeated reporting, reporting the userobject coordinates and orientation once, reporting the user objectcoordinates and orientation repeatedly until a command is given tocease, and ceasing aforementioned repeated reporting. The host commandsalso preferably include force host commands, for example: reporting theforces felt by any single joint or degree of freedom, setting the forceor resistance on any single joint or degree of freedom, and locking orunlocking ajoint or degree of freedom.

Any report by the routines of FIGS. 22 a and 22 b of a single anglevalue requires determining 316 the given joint angle. For thesingle-chip configuration shown in FIG. 20 a, this subroutine directlyreads 314 the appropriate angle sensor from among sensors 210. For themulti-chip configuration shown in FIG. 20 b, this routine reads 322 theoutputs of pre-processing hardware 288 which have already determined thejoint angles from the outputs of the sensors 210. Any report of multipleangles is accomplished by repeatedly executing the routine for reportinga single angle. The routine is executed once per angle, and the valuesof all angles are then included in an output sequence array. If theoptional parts 320 or 326 of the routines are included, then theseroutines become the coordinate reporting routines. Many other commandroutines exist and are simpler yet in their high-level structure.

After determining the given joint angle, the microprocessor 274 createsan output sequence 318 or 324 by assembling an output array in adesignated area of processor memory which will be output by themicroprocessor's communications system at a given regular communicationsrate at 308 of FIG. 21. The sequence will contain enough information forthe host computer 16 to deduce which command is being responded to, aswell as the actual angle value that was requested. Returning to FIG. 21,after step 302, a query 310 in the main command loop asks whether theprevious command requested repeated reports of sensor data. If so, themain command loop is initiated accordingly. The communications outputprocess (not shown) may be as simple as storing the output data in adesignated output buffer, or it may involve a standard set ofcommunications interrupts that are an additional part of the software.Setting communications parameters does not require output data from thedevice. The microprocessor 274 simply resets some of its own internalregisters or sends control signals to its communications sub-unit.

To report the user object coordinates, a portion of the angle values areread and knowledge of link lengths and device kinematics areincorporated to compute user object coordinates. These coordinates arethen assembled in the output sequence array.

To report the user object orientation (if applicable), some of the anglevalues are read and knowledge of link lengths and device kinematics areincorporated to compute user object orientation. Orientation can becomputed for embodiments including more than three degrees of freedom.For example, the orientation can consist of three angles (notnecessarily identical to any joint angles) which are included in theoutput sequence array. In some embodiments, forces on the user objectfrom the user can be sensed and reported to the host computer. To senseforces on a joint or in a degree of freedom, a force sensor mounted onthe joint can be used. The resulting sensed force value can then beplaced in the output sequence array, for example.

Also contemplated in the present invention is computer software andhardware which will provide feedback information from the computer tothe user object. Setting the force or resistance in degree of freedomand locking or unlocking a joint are accomplished by using interactionof the microprocessor 274 with force-reflecting hardware such asactuators 202. To set force or resistance in a degree of freedom orlock/unlock a joint, actuator control signals are used to commandactuators. This type of implementation is known in robotics and thus iseasily incorporated into a system including the present invention. Whena surface is generated on the computer screen, the computer will sendfeedback signals to the mechanical linkage which has force generators oractuators 202 for generating force, for example, in response to thecursor position on the surface depicted on the computer screen. Force isapplied for example, by increasing tension in the joints or degrees offreedom in proportion to the force being applied by the user and inconjunction with the image displayed on the screen.

In other embodiments, different mechanisms can be employed for providingresistance to the manual manipulation of the user object by the user.Return or tension springs can be provided on desired joints or indesired degrees of freedom of the mechanical apparatus 25. In analternative embodiment, counter-weights can be provided on joints or indegrees of freedom of the mechanical apparatus 25. Also, a combinationof a return or tension spring, a counter-weight, and a compressionspring can be provided.

FIG. 23 is a flow diagram illustrating the control process 400 ofactuator 202 during an example of simulated motion of object 44 alongone degree of freedom through a fluid or similar material. Process 400can be implemented by computer 16 or by microprocessor 274 inconjunction with computer 16. The process starts at 410, and, in step412, a damping constant is initialized. This constant indicates thedegree of resistance that object 44 experiences when moving through asimulated material, where a greater number indicates greater resistance.For example, water would have a lower damping constant than oil orsyrup.

In step 414, the current position of object 44 along the examined degreeof freedom is stored in a variable X0. In step 416, the current positionof object 44 along the examined degree of freedom is stored in avariable X1. When process 400 is initially implemented, X0 and X1 areset to the same value. In step 418, a variable ΔX is set to thedifference between X1 and X0 (which is zero the first time implementingthe process). From the sign (negative or positive) of ΔX, the directionof the movement of object 44 can also be determined. In next step 420, avariable FORCE is set equal to the damping constant multiplied by ΔX. Asignal representative of the value of FORCE is then sent to the brake(or other passive actuator) in step 422 to set the brake impedance atthe desired level. In step 424, variable X0 is set equal to X1, and theprocess then returns to step 316 to read and store another position ofobject 44 in variable X1. Process 400 thus measures the manual velocityof object 44 as controlled by the user and produces a brake impedance(FORCE) proportional to the user's motion to simulate movement through afluid. Movement in other mediums, such as on a bumpy surface, on aninclined plane, etc., can be simulated in a similar fashion usingdifferent methods of calculating FORCE.

FIG. 24 is a flow diagram 428 illustrating a preferred method ofmodeling a “wall” or other hard surface or obstruction in a virtualenvironment when using a mechanical interface such as interface 240 orinterface 250 with transducer system 200. It is assumed for this methodthat an object 44 is being grasped and moved by a user in a virtualenvironment. A computer system 16 is preferably detecting the positionof the object and providing force feedback to the object whenappropriate.

The method starts at 430, and, in a step 432, the position of an objectis sensed by the computer 16 and/or microprocessor 274. Sensors 210provide the rotary and/or linear position of object 44 in the number ofdegrees of freedom being sensed. The computer 16 updates a virtualreality environment in response to the user's movements of object 44.For example, if the user moves a steering wheel object 44, the computer16 can move the point of view of the user as if looking out a vehicleand turning the vehicle. It should be noted that the computer16/microprocessor 274 can be providing force feedback to the user thatis not related to the virtual wall in this step as well. For example,the computer can cause a joystick to require greater force to be movedwhen simulating a vehicle moving in mud, over a bumpy surface, etc., asdescribed above with reference to FIG. 23.

In step 434, it is determined if object 44 (or a virtual,computer-generated object controlled by object 44) has been moved into avirtual wall or a similar obstruction that can prevent object 44 frommoving in one or more directions. If the object has not been moved intosuch an obstruction, step 272 is repeated and any other appropriateforce feedback according to the object's movement can be applied. If theobject has been moved into such an obstruction, then step 436 isimplemented, in which the passive actuator such as a brake providesmaximum impedance to the motion of object 44 along the obstructeddegree(s) of freedom. This feels to the user as if the object 44 has hitan obstruction and can no longer be moved in the direction of the “wall”or obstacle.

In next step 438, the computer 16 checks for any movement in directionopposite to the wall. If no movement in this direction is sensed bysensors 210, then continued maximum resistive force is applied to object44 in step 436; the user is thus still forcing object 44 towards thewall. If the computer/microprocessor detects movement away from the wallin step 438, due to the play caused by coupling 206, then step 440 isimplemented, in which the computer/microprocessor releases the brakesbefore the limit to the play is reached in the new direction (i.e.,within the allowed compliance or backlash). The user can thus freelymove object 44 away from the wall without feeling like it is stuck tothe wall. The process then returns to step 432, in which thecomputer/microprocessor senses the position of object 44.

Other virtual environments can be provided on the host computer 16 andforce sensations can be generated on a user object in accordance withdifferent objects, events, or interactions within the virtualenvironment. For example, other types of virtual environments andassociated forces are described in co-pending patent application Ser.Nos. 08/566,282, 08/571,606, 08/664,086, 08/691,852, 08/756,745, and08/47,841, all assigned to the same assignee as the present invention,and all of which are incorporated by reference herein.

While this invention has been described in terms of several preferredembodiments, it is contemplated that alterations, modifications andpermutations thereof will become apparent to those skilled in the artupon a reading of the specification and study of the drawings. Forexample, the linked members of apparatus 25 can take a number of actualphysical sizes and forms while maintaining the disclosed linkagestructure. In addition, other gimbal mechanisms can also be providedwith a linear axis member 40 to provide three degrees of freedom.Likewise, other types of gimbal mechanisms or different mechanismsproviding multiple degrees of freedom can be used with the capstan drivemechanisms disclosed herein to reduce inertia, friction, and backlash ina system. A variety of devices can also be used to sense the position ofan object in the provided degrees of freedom and to drive the objectalong those degrees of freedom. In addition, the sensor and actuatorused in the transducer system having desired play can take a variety offorms. Similarly, other types of couplings can be used to provide thedesired play between the object and actuator. Furthermore, certainterminology has been used for the purposes of descriptive clarity, andnot to limit the present invention. It is therefore intended that thefollowing appended claims include all such alterations, modificationsand permutations as fall within the true spirit and scope of the presentinvention.

1. An apparatus, comprising: a manipulatable object movable in at leasttwo rotary degrees of freedom; a non-rigid coupling coupled to themanipulatable object, the non-rigid coupling having a plurality offlexible lengthwise members, the non-rigid coupling being configured toprovide rotational flex; an actuator coupled to the non-rigid coupling,the actuator configured to receive instructions from a first processorand to provide force feedback to the manipulatable object via thenon-rigid coupling in response to the received instructions; and asensor configured to detect a motion of the manipulatable object, thesensor being configured to communicate the motion of the manipulatableobject to the first processor.
 2. The apparatus of claim 1, furthercomprising: a second processor configured to process instructionsreceived from the first processor and to generate force feedbackinformation signals to be transmitted to the first processor.
 3. Theapparatus of claim 2, further comprising: a memory coupled to the secondprocessor, the memory configured to store force feedback informationsignals from the second processor.
 4. The apparatus of claim 1, whereinthe motion the sensor is further configured to detect a direction of themotion of the manipulatable object.
 5. The apparatus of claim 1, whereinthe manipulatable object includes a joystick.
 6. The apparatus of claim1, wherein the manipulatable object includes a stick-like objectconfigured to strike a ball.
 7. The apparatus of claim 6, wherein thestick-like object comprises a pool cue.
 8. The apparatus of claim 1,further comprising a gimbal coupled to the manipulatable object, thegimbal being configured to provide the manipulatable object with atleast two rotary degrees of freedom.
 9. The apparatus of claim 1,wherein the actuator is a resistive actuator.
 10. The apparatus of claim1, wherein the actuator is further configured to provide a resistiveforce.
 11. A method, comprising: receiving force feedback instructionsfrom a first processor; providing force signals to an actuator based onthe received force feedback instructions; moving a manipulatable objectin a manner having rotational flex at least partially in response to theprovided force signals, the rotational flex being defined by a non-rigidcoupling having a plurality of flexible lengthwise members; sensing themovements of the manipulatable object; and communicating informationassociated with the movements of the manipulatable object to the firstprocessor, the information being configured to aid the first processorin creating force feedback instructions.
 12. The method of claim 11,further comprising: controlling movements of the manipulatable object atleast partially in response to the sensing.
 13. The method of claim 11,wherein the moving includes: providing a damping sensation.
 14. Themethod of claim 11, wherein the moving includes: providing an impactsensation.
 15. The method of claim 11, wherein the moving includes:providing a sensation of moving through multiple types of mediums. 16.The method of claim 11, wherein the moving includes: moving themovements of the manipulatable object in at least two rotary degrees offreedom, the at least two rotary degrees of freedom being defined by agimbal.
 17. The method of claim 11, wherein the moving includes:applying a resistive force to the manipulatable object.
 18. A method,comprising: receiving sensor information associated with movement of amanipulatable object; performing calculations based upon the receivedsensor information; transmitting force feedback information based atleast partially on the calculations, the force feedback informationbeing configured to cause the manipulatable object to move in a mannerhaving rotational flex to provide force feedback, the rotational flexbeing defined by a non-rigid coupling having a plurality of flexiblelengthwise members.
 19. The method of claim 18, further comprising:controlling movements of the manipulatable object via a control loop,the controlling being at least partially in response to the performedcalculations and the received sensor information.
 20. The method ofclaim 18, wherein the controlling includes: providing a dampingsensation.
 21. The method of claim 18, wherein the controlling includes:providing an impact sensation.
 22. The method of claim 18, wherein thecontrolling includes: providing a sensation of moving through multipletypes of mediums.